Разрешено ли выбирать статический класс из параметризованного типа в Java?JAVA

Программисты JAVA общаются здесь
Anonymous
Разрешено ли выбирать статический класс из параметризованного типа в Java?

Сообщение Anonymous »

Вот минимальная демонстрация:

Код: Выделить всё

public class OuterStaticNestedDemo {
class Outer {
static class StaticNested {}
}

void qualifiedNew(Outer outer) {
new Outer.StaticNested();
new OuterStaticNestedDemo.Outer.StaticNested();
}
}
Когда я компилирую с помощью javac, возникает ошибка (здесь используется версия 25, но то же самое для версий 11, 17 и 21):

Код: Выделить всё

javac -g -source 25 -target 25 OuterStaticNestedDemo.java
OuterStaticNestedDemo.java:8: error: cannot select a static class from a parameterized type
new Outer.StaticNested();
^
1 error
Когда я компилирую с помощью ecj, он компилируется:

Код: Выделить всё

java -jar ecj-3.44.0.jar -g -source 25 -target 25 OuterStaticNestedDemo.java
Разрешено ли в Java выбирать статический класс из параметризованного типа?

ecj кажется более мягким, чем javac, или это может быть ошибка в любом из двух компиляторов?

Подробнее здесь: https://stackoverflow.com/questions/798 ... pe-in-java

Вернуться в «JAVA»