如何访问"未命名"类的方法?

kus*_*dna 1 java inheritance abstract-class

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();
}
Run Code Online (Sandbox Code Playgroud)

在这里,我宣布一个抽象类DemoAbstractClass.我显然可以创建一个扩展此类的新类,并将此方法添加到其中.但是,我不希望在我的场景中这样做.在上面的代码中有没有其他方法来访问getVal方法?

aio*_*obe 6

你不能.你需要制作一个合适的(非恶性的)课程.如果要限制其范围,请将其设为内部私有类.

或者,您可以使用StringBuffer并在方法之间共享它的引用.然而,不是很干净.

相关问题: