在一个方法中定义一个新的匿名类,然后将一个实例分配给一个外部类的私有(private)字段是否合法,就像下面的代码中所评论的那样?我正在学习 Java 并试图了解这背后的原因。谢谢!
public class Outer{
private int id;
private String name;
private SwingWorker doSomething; //Is it ok not to include it in the constructor?
public Outer (int id, String name){
//constructor, but didn't include the instance doSomething
}
public void fuctionOne(){
Swingworker doSomething =new SwingWorker<int, Void>(){
protected int DoInBackground(){
...........// created an anonymous class and override methods
最佳答案
public void fuctionOne(){
Swingworker doSomething = new SwingWorker<int, Void>(){
protected int DoInBackground(){...
您在这里定义和初始化一个局部变量,而不是分配给 Outer
类的成员。
如果你想初始化Outer
的doSomething
成员,做
public void fuctionOne(){
doSomething = new SwingWorker<int, Void>(){
protected int DoInBackground(){...
通常,您不必在构造函数中初始化类的所有成员。如果您不初始化它们,它们将获得默认值(在引用类型的情况下为 null
)。您只需确保在实际使用它们之前对它们进行初始化。
关于java - 匿名类和外部私有(private)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26312918/