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

时间:2018-04-12 14:09:14

标签: java spring-ioc

我有一个使用String常量的方法,如下所示,该值永远不会再次使用。

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

初始值永远不会改变,Sample类是单例bean。

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

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

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

从绩效角度看哪种方法更好

1 个答案:

答案 0 :(得分:1)

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

@Service
public class Sample {

    public final int DEFAULT_GREETING = "Hi";

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

然后你可以在类的顶部组织值,尽管它在类中使用它,并且无论它是使用过一次还是多次,并且你可以根据需要提供对外部类的常量的访问。

这实际上归结为传达价值的含义/用途/范围