java - SwingWorker自定义方法的外部调用

标签 java swingworker anonymous-inner-class

...

SwingWorker<Boolean, Void> worker = new SwingWorker<Boolean, Void>(){
String a = "a";

    getA() {
         return a;
    }

    protected boolean doInBackground() throws Exception{
        return true;
    }
}

worker.getA();

worker.execute;

...

上面的代码不起作用,它告诉我 getA() (在最后一行之前调用时)对于 SwingWorker 是未定义的。

但是,如果我将 SwingWorker 设为一个单独的类,它就可以正常工作。我可能不明白这是如何工作的(而且我可能不明白),但我认为没有理由让 SwingWorker 成为一个匿名内部类会阻止我在其中调用自定义方法...

这是一个好主意,还是我应该将其作为一个单独的类?我无意在其他地方使用 SwingWorker。

最佳答案

这与 SwingWorker 本身无关,而与您尝试调用不是父类重写的匿名内部类的方法有关。由于这是不可能完成的,所以您根本不应该尝试这样做。解决方案是不使用匿名内部类,而是使用私有(private)内部类或独立外部类。例如,请参阅我已经在您的 previous question 中发布的类(class).

关于java - SwingWorker自定义方法的外部调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15719784/

相关文章:

Java字符错误: cannot find symbol

java - 在没有框架的情况下管理 DI 对象

java - 如何停止 SwingWorker?

java - 我应该把工作线程放在哪里

java - 这在java中是什么?附加方法 "on the fly"?

java - 具有范围原型(prototype)的 Spring beans

java - AspectJ 和 Maven

java - 复制目录和文件时需要有 JProgress 条来衡量进度

Scala:具有匿名类型的抽象类

java - Java 匿名类的类名