最近,我注意到有很多人在做这样的事情:
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);
}
每个人还有什么好处吗?你认为哪一个更好?
答案 0 :(得分:3)
如果anything
为static 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
来阅读。