Java 如果只在一个地方使用,应该是定义为常量的字符串

Java Should be a string defined as constant if it being used only at one place

我有一个使用字符串常量的方法,如下所示,该值再也不会被使用。

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

initial 的值永远不会改变,Sample class 是一个单例 bean。

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

@Service
public class Sample {
    private static final String INITIAL="Hi";

    public void test(Greet greet) {
        greet.setInitial(INITIAL)
    }
}

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

具体情况视具体情况而定。在这种情况下,我可能会使用字符串文字 greet.setInitial("Hi"); 而不是常量。但这实际上取决于您要如何处理或组织此值,例如,如果您将变量视为常量:

@Service
public class Sample {

    public final int DEFAULT_GREETING = "Hi";

    public void test(Greet greet) {
        greet.setInitial(DEFAULT_GREETING);
    }
}

那么你可以在class的顶部组织值,不管它在class中的什么地方使用,不管它是使用一次还是多次,你可以提供访问如果需要的话,到外部 classes 的常量。

归根结底就是要传达meaning/use/scope你的价值