0
在Java中可以实现类似的功能吗?我的想法是使用匿名类向类中添加一个方法,但这似乎不起作用。如何将方法添加到课堂上? (与反射无关)
public class Abc {
private ErrorsTable expectedErrorsTable = new ErrorsTable() {
public ErrorsTable addError(String error) {
this.add(error); //ErrorsTable is just a disguised ArrayList
return this;
}
};
...
public void someMethod() {
expectederrorsTable.adError("abc");
}
}
这绝不是一个神秘的为什么这不起作用。 expectedErrorsTable
类型为ErrorsTable
,因此编译器无法知道实际上存在一个配备了addError(String)
的扩展实现。
可以使用其他什么简单的方法达到相同的效果(除了使用延伸ErrorsTable
的新类创建新文件外)?
子类化有什么问题?您还可以重新定义'ErrorsTable'以包含'addError'方法。 – 2011-03-13 18:26:21