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你的价值
我有一个使用字符串常量的方法,如下所示,该值再也不会被使用。
@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你的价值