0

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

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);
}

每个人都有更多的好处吗?还有你们觉得哪一个更好呢?

4

2 回答 2

3

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

但是,使用该getAnything()方法可以更改功能而无需重构代码。例如,可以在getAnything()实现中添加日志记录。

如果你实现了一个getAnything()方法,那么改变anythingfrompublic到的可见性是很常规的private

于 2013-09-12T15:59:56.247 回答
0

恕我直言,没有区别。两者的目的相同。

但会有一点不同

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

如果您使用,则无法跟踪

  System.out.println(One.anything);

如果不需要做任何事情,我更喜欢写得One.anything干净易读。

于 2013-09-12T16:01:58.537 回答