Как я могу вызвать метод 'func' и каков смысл реализации этого объекта? - PullRequest
1 голос
/ 03 мая 2019

Так что я просто поигрался с java 8 и подумал о том, чтобы поставить {} после создания объекта, и странно, что он не ошибся.

public class Guava{

    public static void main(String [] args) {
        Guava g = new Guava(){
            int x=1;
            public void func(){
                System.out.println("LOL");
            }
        };
    }
}

Ожидал кодк ошибке в строке

Guava g = new Guava(){ ... };

Поэтому я хочу знать, есть ли способ на самом деле использовать переменную 'x' и метод 'func', и еслиэто актуальная концепция под Java, о которой я не знаю?(может быть закрытие?)

Спасибо

1 Ответ

0 голосов
/ 03 мая 2019

Guava g = new Guava(){ ... }; создает анонимный внутренний класс .

Это внутренний класс без имени, для которого создается только один объект.

Inваш пример, внутренний класс наследует от Guava.

...