代码之家  ›  专栏  ›  技术社区  ›  JDev

如果Java只在一个位置使用[关闭],则它应该是一个定义为常量的字符串

  •  -1
  • JDev  · 技术社区  · 8 年前

    我有一个方法,它使用一个字符串常量,如下所示,该值将不再使用。

    @Service
    public class Sample {
        public void test(Greet greet) {
            greet.setInitial("Hi");
        }
    }
    

    初始值从不更改,示例类是一个单例bean。

    我的问题是,我们是否应该声明一个常量,如下所示:

    @Service
    public class Sample {
        private static final String INITIAL="Hi";
    
        public void test(Greet greet) {
            greet.setInitial(INITIAL)
        }
    }
    

    从性能角度来看,哪种方法更好

    1 回复  |  直到 8 年前
        1
  •  3
  •   xtratic Rob    8 年前

    这可以归结为个案基础。在这种情况下 我可能会使用字符串文字 greet.setInitial("Hi"); 而不是常数。但这实际上取决于您希望如何处理或组织此值,例如,如果您将变量视为常量:

    @Service
    public class Sample {
    
        public final int DEFAULT_GREETING = "Hi";
    
        public void test(Greet greet) {
            greet.setInitial(DEFAULT_GREETING);
        }
    }
    

    然后,您可以将值组织在类的顶部,不管它在类中的位置如何,也不管它是一次使用还是多次使用,如果需要,您可以为外部类提供对常量的访问。

    归根结底就是要传达你价值的意义/用途/范围