所以基本上,我有一个对象,该对象会初始化,然后创建一个匿名子类:
public NECRONOMICON;
NECRONOMICON = new Item(arguments here){
public ArrayList<String> str = new ArrayList<String>();
public ArrayList<String> getStr(){
return this.str;
}
那是伪代码,但希望我的意图很明确。 这部分工作正常,它使我可以创建item子类。
但是,当尝试访问此方法时,
NECRONOMICON.getStr()
我得到The method getStr() is undefined for the type Item
任何帮助将不胜感激。
答案 0 :(得分:0)
getStr()方法将不可见,因为您正在创建'Item'的匿名子类。.仅'Item'及其父类的方法可见。
换句话说,当您创建类似“ new Item(){}”的对象时,实际上是在创建Item类的子类。这个新的子类是匿名的,您在其中定义的任何新方法都无法通过其引用访问。发生这种情况是因为引用变量的类型为'Item',并且类型'Item'不包含名为'getStr()'的方法