我发现有时,如果不是总是,静态最终字段将在字节码级别内联。出于某种原因,我不喜欢这种情况发生。如何关闭此编译选项?特别是在Eclipse 4中。(不涉及源代码。)
由于
答案 0 :(得分:1)
我不知道编译时选项。
Puzzle 93:Class Warfare,在 Java Puzzlers 一书中讨论了这一点。可能会产生错误,因为null不会被“内联”。
有一种解决方法可以通过无操作功能来引用它们,例如:
public class Words {
private Words() { }; // Uninstantiable
public static final String FIRST = ident("the");
public static final String SECOND = ident(null);
public static final String THIRD = ident("set");
private static String ident(String s) {
return s;
}
}
显然,这需要广泛修改源代码。不是你想要的......