我应该使用静态方法还是静态字段

时间:2014-04-10 11:02:13

标签: java multithreading static

我想声明一些静态变量并在我的代码中大量使用它们,所以在这个例子中,如果我想更改电话号码,我会在一个地方更改它:

public class AppInformation{
    static String phone_number="44444444";
}

所以现在我可以通过调用类来获取phone_number: AppInformation.phone_number;

另一种解决方案:

public class AppInformation {

    public static String get_phone_number(){
        return "44444444";
    } 
}

现在我可以调用方法: AppInformation.get_phone_number();

实际上我更喜欢第二种方法,因为它是线程安全的!

这是对的吗?还有其他建议吗?

3 个答案:

答案 0 :(得分:5)

将其声明为public static final String PHONE_NUMBER = "44444444"。由于您只能读取此变量,因此它是线程安全的。

为什么我将其命名为PHONE_NUMBER,而不是phoneNumber(或打破我所知道的Java约定phone_number),解释为here

答案 1 :(得分:1)

您可以将其声明为

static final String phone_number =" 44444444&#34 ;; 并且不再担心线程安全了:))

答案 2 :(得分:1)

你所说的是你想要一个常量,在Java中,通常表达如下:

public class AppInformation
{
  public static final String PHONE_NUMBER = "44444444";
}

注意,在你的例子中你错过了:

  • access modifier,在类的情况下,意味着值将是包私有。
  • final键工作,这意味着可以在程序运行时修改该值。