Анонимные методы подкласса в Java - PullRequest
0 голосов
/ 04 июля 2019

Итак, в основном у меня есть объект, который я инициализирую, а затем создаю анонимный подкласс:

public NECRONOMICON;

NECRONOMICON = new Item(arguments here){
public ArrayList<String> str = new ArrayList<String>();

public ArrayList<String> getStr(){
    return this.str;
}

Это был псевдокод, но, надеюсь, мои намерения ясны. Эта часть отлично работает, и это позволяет мне создать подкласс элемента.

Однако, при попытке доступа к этому методу,

NECRONOMICON.getStr()

Я получаю The method getStr() is undefined for the type Item

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 04 июля 2019

Метод getStr () не будет виден, потому что вы создаете анонимный подкласс «Item». Видны только методы «Item» и его родительского класса.

Другими словами, когда вы создаете объект типа 'new Item () {}', вы фактически создаете подкласс класса Item. Этот новый подкласс является анонимным, и любой новый метод, который вы в нем определяете, не будет доступен по его ссылке. Это происходит потому, что ссылочная переменная имеет тип «Item», а тип «Item» не содержит метод с именем «getStr ()»

...