在java中使用字符串变量的最佳做法是什么? 是否必须在使用/操作之前声明和初始化它。
例如:
String thisString; // is this best practice
String thatString =""; // or is this best practice
答案 0 :(得分:1)
Afaik这里没有强有力的约定。如果我已经知道了赋值,我宁愿在声明中初始化一个字符串变量,如:
String name = generateName();
如果它是静态值,则应将其声明为最终静态变量:
private final static DEFAULT_NAME = "John Doe";
如果在作业之前需要变量:
String name;
if(useLongNames) {
name = firstame;
}
else {
name = title + " " + fistname + " " + lastname;
}
// some code which uses name
此外,您可以考虑将所有可变声明设置为final,您只想分配一次。这样可以防止您出现某些可能已被IDE检测到的错误。
答案 1 :(得分:1)
如果它是一个字段,你通常会在没有初始化的情况下声明它,并在构造函数中为它赋值。
如果它是局部变量,最佳做法是将其声明为您知道其预期值的位置,因此您可以使用有意义的值对其进行初始化:
String myString = "Result = " + xyz;
引入一个没有意义值的变量是(在大多数情况下)坏的风格。 (为什么你会引用一个你尚未决定的名字(=变量)?)
在像
这样的情况下String myString;
if (someCondition) {
myString = "A";
} else {
myString = "B";
}
System.out.println(myString);
如果很难使用相同的语句来声明和分配字符串,最好在没有初始化的情况下声明变量。然后,编译器检查在所有执行路径中,您在使用它之前为变量赋值,并且永远不会以某些遗忘的赋值结束。
答案 2 :(得分:0)