首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果字符串常量可以在编译时确定,Java是否保证内联字符串常量

如果字符串常量可以在编译时确定,Java是否保证内联字符串常量
EN

Stack Overflow用户
提问于 2009-09-10 17:28:18
回答 3查看 7.1K关注 0票数 18

考虑一下这种情况:

代码语言:javascript
复制
public Class1 {
   public static final String ONE = "ABC";
   public static final String TWO = "DEF";
}

public Class2 {

  public void someMethod() {
    System.out.println(Class1.ONE + Class1.TWO);
  }
}

通常,您会期望编译器内联1和2常量。然而,这种行为是有保证的吗?您是否可以在运行时在类路径中没有Class1的情况下部署Class2,并期望它与编译器无关地工作,或者这是一个可选的编译器优化吗?

编辑:到底为什么要这样做?我有一个常量,它将在应用程序的两端(通过RMI的客户端和服务器)共享,在这种特殊情况下,将常量放在只能位于分割线一侧的类中(因为它在逻辑上拥有常量值),而不是将其放在任意常量类中,因为它需要由代码的两端共享,这将是非常方便的。在编译时,它全部是一组源文件,但在构建时,它是按包划分的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1406616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档