在java中使用string的最佳实践

时间:2017-12-11 18:45:55

标签: java

在java中使用字符串变量的最佳做法是什么? 是否必须在使用/操作之前声明和初始化它。

例如:

String thisString; // is this best practice

String thatString =""; // or is this best practice

3 个答案:

答案 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)

  1. 这完全取决于你在哪里创建字符串变量。
  2. 如果要在类的实例变量中创建字符串变量,则为
    你不需要初始化它,因为java会提供默认值 那个变量,即null。所以你可以使用String thisString;如果它是 实例变量。
  3. 如果要在函数内创建字符串变量,那将是 总是更好地创建一个以null作为值的变量。因为null意味着我 没有初始化这个变量,它没有值和空 字符串表示我知道该值并且它是空的。