gpt4 book ai didi

java - 如何动态地将方法添加到类中? (与反射无关)

转载 作者:行者123 更新时间:2023-12-01 15:54:48 30 4
gpt4 key购买 nike

用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 的新类创建新文件之外)?

最佳答案

将其定义为扩展所需类的内部类,然后对其进行声明。

public class Abc {

private class ExpectedErrorsTable extends ErrorsTable {
public ErrorsTable addError(String error) {
this.add(error);
return this;
}
}

private ExpectedErrorsTable expectedErrorsTable = new ExpectedErrorsTable();

public void someMethod() {
expectedErrorsTable.addError("abc");
}

}

关于java - 如何动态地将方法添加到类中? (与反射无关),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5291397/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com