Sau*_*mar 4 java compiler-construction constants
假设您编译以下两个类.第一个是代表客户; 第二,图书馆课.
public class Test{
public static void main(String[] args) {
System.out.println(Lib.FIRST + " " +
Lib.SECOND + " " +
Lib.THIRD);
}
}
public class Lib{
private Lib() { }; // Uninstantiable
public static final String FIRST = "the";
public static final String SECOND = null;
public static final String THIRD = "set";
}
Run Code Online (Sandbox Code Playgroud)
打印:
{null set}
现在假设您按如下所示修改库类并重新编译它而不是客户端程序:
public class Lib{
private Lib() { }; // Uninstantiable
public static final String FIRST = "physics";
public static final String SECOND = "chemistry";
public static final String THIRD = "biology";
}
Run Code Online (Sandbox Code Playgroud)
打印:
{化学集}
为什么SECOND值改变,但不是FIRST还是THIRD?
这是一个众所周知的警告 - 在编译客户端程序时会内联常量,因此您也必须重新编译它.
也可以看看:
| 归档时间: |
|
| 查看次数: |
173 次 |
| 最近记录: |