Разрешено ли выбирать статический класс из параметризованного типа в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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