返回一个对象/原语并简单地调用它之间的区别

时间:2013-09-12 15:57:38

标签: java string getter

最近,我注意到有很多人在做这样的事情:

class One {
    public static final String anything = "Hi!";

    public static String getAnything(){
        return anything;
    }
}

class Two { // This is not an inner class
    System.out.println(One.getAnything());
}

Vs的

class One {
    public static final String anything = "Hi!";
}

class Two {
    System.out.println(One.anything);
}

每个人还有什么好处吗?你认为哪一个更好?

2 个答案:

答案 0 :(得分:3)

如果anythingstatic final(如您的示例所示),则没有区别。

但是,使用getAnything()方法可以在不重构代码的情况下更改功能。例如,可以在getAnything()实现中添加日志记录。

如果您实施getAnything()方法,则会将anything的{​​{1}}的可见度从public更改为private

答案 1 :(得分:0)

恕我直言,没有区别。两个人都是为了同一个目的而服务。

但是差别很小

public static String getAnything(){
       //Hey someone taking value of anything.Do something here.
        return anything;
    }

如果您使用

,则无法跟踪
  System.out.println(One.anything);

如果不需要做任何事情,我更愿意写一些干净的One.anything来阅读。