java静态方法声明_方法本地类中的Java最终静态声明
在方法內部聲明局部內部類時,為什么包含最終的靜態String或int是合法的,而包含其他對象卻不合法?
例如:
class Outer {
void aMethod() {
class Inner {
final static String name = "compiles";
final static int ctr = 10; // compiles
final static Integer intThree = Integer.valueOf(3); // does not compile!
final static obj objConst = new Object(); // does not compile!
}
Inner inner = new Inner();
}
}
編譯時,得到以下信息:
InnerExample.java:6: inner classes cannot have static declarations
final static Integer outer = Integer.valueOf(3);
^
InnerExample.java:7: inner classes cannot have static declarations
final static Object objConst = new Object();
^
為什么要區分?是因為String是不可變的嗎?如果是這樣,Integer.valueOf()也無效嗎?
總結
以上是生活随笔為你收集整理的java静态方法声明_方法本地类中的Java最终静态声明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java.swing调难度_Java S
- 下一篇: java label api_使用pyt