假设我有一个类像这样:
class ApplicationDefs{
public static final String configOption1 = "some option";
public static final String configOption2 = "some other option";
public static final String configOption3 = "yet another option";
}
我的应用程序中的许多其他类都使用这些选项。现在,我想单独更改其中一个选项并部署编译后的类。 但是,如果这些字段在消费者类中被内联,那么这就变得不可能了,对吗?
是否有任何选项可以禁用编译时常量的内联?
aString.toString()
返回aString
本身,而不是一个新的字符串,因此对于这个问题来说,它与intern()
一样有效。如果需要创建一个全新的字符串副本,可以使用很少使用的构造函数new String(aString)
。 - Christian Semrauintern()
是无用的。它们已经被“interned”了。请参见这里。 - cevingconfigOption1
等内容被内联到其他类中。否则,如果某个其他类引用了configOption1
,而你又更改了常量并没有重新编译其他类,则其行为将不会按照你期望的(或可能想要的)方式发生。这就是OP问题的全部意义所在。 - Ted Hopp