我想知道,有什么不同,在各种方法初始化静态最终变量?
private static final int i = 100;
Run Code Online (Sandbox Code Playgroud)
要么
private static final int i;
static {
i = 100;
}
Run Code Online (Sandbox Code Playgroud)
这两者有什么不同吗?
sep*_*p2k 10
如果你只是设置变量,那么两种形式都是等价的(你应该使用前者,因为它更具可读性和简洁性).
的static {}形式存在,你还需要执行比变量赋值等语句的情况.(有点做作)的例子:
private static final int i;
static {
establishDatabaseConnection();
i = readIntFromDatabase;
closeDatabaseConnection();
}
Run Code Online (Sandbox Code Playgroud)