// That doesn't work:
import java.io.File;
public class Test {
File file1;
file1 = new File("path");
}
//--------------------------------------
// The following works:
import java.io.File;
public class Test {
File file1 = new File("path");
}
我不明白为什么第一个版本不可行。我还尝试了一个int值(我认为这不是一个对象):
//Also doesn't work:
public class Test {
int number;
number = 4;
}
这是因为方法之外的类定义不是可执行代码。所以这行
file1 = new File("path");
永远不会执行。类定义在编译时处理,语句在运行时执行。
如上所述,您可以创建一个静态代码段,该静态代码段在加载类时执行。但是,我相信这等同于您的第二个示例:
File file1 = new File("path");
((但是我承认没有检查字节码)。
您可以使用block语句:
public class Test {
File file1 ;
{
file1 = new File("path");
}
}