...
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/