public class Test {
public static void main(String[] args) {
DemoAbstractClass abstractClass = new DemoAbstractClass() {
private String val;
@Override
public void runner() {
val = "test";
System.out.println(val);
this.run();
}
public String getVal() {
return val;
}
};
abstractClass.runner();
/**
* I want to access getVal method here
*/
}
}
abstract class DemoAbstractClass {
public void run() {
System.out.println("running");
}
public abstract void runner();
}
在这里,我声明了一个抽象类 DemoAbstractClass。我显然可以创建一个扩展此类的新类并将此方法添加到其中。但是,我宁愿在我的场景中不这样做。 有没有其他方法可以访问上面代码中的 getVal 方法??
最佳答案
你不能。您需要从中创建一个适当的(非反常的)类。如果您想限制其范围,请将其设为内部私有(private)类。
或者,您可以使用 StringBuffer 并在方法之间共享对它的引用。然而不是很干净。
相关问题:
关于java - 如何访问 "unnamed"类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11036618/