Ссылка на статический метод в анонимном классеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ссылка на статический метод в анонимном классе

Сообщение Anonymous »

Рассмотрим следующее надуманное «привет, мир»:

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

abstract public class Main implements java.util.function.Supplier {
public static void main(String[] args) {
new Main() {
private void hello() {
System.out.println("hello, world");
}
@Override
public Runnable get() {
return this::hello;
}
}.get().run();
}
}
Это работает. Теперь представьте, что я понимаю, что метод hello можно сделать статическим, как мне теперь получить ссылку на этот метод? Ссылка на статический метод требует использования имени класса, которого по определению там нет. Я пытался просто сослаться на hello, ::hello или null::hello, но это неприемлемо для компилятора.
Поскольку метод статический, это, конечно, можно легко обойти, поместив статический метод в класс Main и ссылаясь на него как Main::hello, но в более сложной настройке преимущество возможность ссылаться на статический метод будет ограничивать статический метод минимально возможным контекстом. Конечно, можно предположить, что, вероятно, в этот момент вы, вероятно, злоупотребляете возможностью иметь анонимные классы, но мой вопрос в основном возникает из любопытства понять, возможно ли вообще обращение к статическим методам анонимных классов.

Подробнее здесь: https://stackoverflow.com/questions/791 ... mous-class
Ответить

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

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

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

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

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