在Java中何时将变量转换为常量? 公共字符串getPreviewMessageForWebdavResponse(){ 字符串格式=“%d%d”; 返回String.format(格式、currentNumber、totalNumber); }

在Java中何时将变量转换为常量? 公共字符串getPreviewMessageForWebdavResponse(){ 字符串格式=“%d%d”; 返回String.format(格式、currentNumber、totalNumber); },java,variables,constants,Java,Variables,Constants,有时,我会遇到一根绳子。我无法判断它是否需要是常量或局部变量。该字符串在方法中只使用一次,不需要在方法外部公开 如何选择?你的问题有点不清楚。我将回答脑海中可能出现的三个问题: (所有这些都只是风格问题) 我应该使用一个变量,还是仅仅将字符串文本内联到它使用的位置 我想说,至少在您的例子中,字符串的长度表明了这一点,将其作为一个具有描述性名称的变量保存,并将其保留在方法的顶部。使以后更容易查找和更新(如果需要),使以后多次需要时更容易重构,使阅读更容易 变量应该是局部的和最终的吗 它是否应该是

有时,我会遇到一根绳子。我无法判断它是否需要是常量或局部变量。该字符串在方法中只使用一次,不需要在方法外部公开


如何选择?

你的问题有点不清楚。我将回答脑海中可能出现的三个问题:

(所有这些都只是风格问题)

我应该使用一个变量,还是仅仅将字符串文本内联到它使用的位置

我想说,至少在您的例子中,字符串的长度表明了这一点,将其作为一个具有描述性名称的变量保存,并将其保留在方法的顶部。使以后更容易查找和更新(如果需要),使以后多次需要时更容易重构,使阅读更容易

变量应该是局部的和最终的吗

它是否应该是类级常量(
static final

始终尽可能限制范围和可见性

如果只在一种方法中使用,请将其保留在方法中

如果它在同一类中的多个方法中使用,则将其设为
private static final

如果在同一个软件包中的多个位置使用,则将其设置为静态最终版本


如果在整个项目中都使用它,那么只需将其公开

您的问题有点不清楚。我将回答脑海中可能出现的三个问题:

(所有这些都只是风格问题)

我应该使用一个变量,还是仅仅将字符串文本内联到它使用的位置

我想说,至少在您的例子中,字符串的长度表明了这一点,将其作为一个具有描述性名称的变量保存,并将其保留在方法的顶部。使以后更容易查找和更新(如果需要),使以后多次需要时更容易重构,使阅读更容易

变量应该是局部的和最终的吗

它是否应该是类级常量(
static final

始终尽可能限制范围和可见性

如果只在一种方法中使用,请将其保留在方法中

如果它在同一类中的多个方法中使用,则将其设为
private static final

如果在同一个软件包中的多个位置使用,则将其设置为静态最终版本


如果在整个项目中都使用它,那么只有将其公开

你是在问是否应该使用
final
?我不理解你的问题。字符串格式与变量的来源无关。@OliCharlesworth:我想他是在问它是否应该是
静态final
字符串。或者你是否应该使用变量/常量,而不是将字符串文本内联到它所使用的一个位置?请参阅公认的答案。谢谢大家大家大家有人问你们是否应该使用
final
?我不明白你们的问题。字符串格式与变量的来源无关。@OliCharlesworth:我想他是在问它是否应该是
静态final
字符串。或者你是否应该使用变量/常量,而不是将字符串文本内联到它所使用的一个位置?请参阅公认的答案。谢谢大家,谢谢大家
public String getPreviewMessageForWebdavResponse(){ 

    String format="<preview><currentNumber>%d</currentNumber><totalNumber>%d</totalNumber></preview>";
    return String.format(format, currentNumber,totalNumber);
}