ram*_*ion 2 java naming-conventions
所以,我通常是一个红宝石程序员,因此我对Java约定的掌握充其量是不稳定的.如果我有一个类A并且想要定义一个方法来添加该类的两个实例,那么行为和返回类型的约定是什么?
public class A
{
//...
public NotSureWhatTypeItShouldReturn add (A that) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
我是不是该
哪种方法适合这种方法的常规Java约定?
两者都存在:Collection.add修改集合并返回一个布尔值,并BigInteger.add返回一个新的BigInteger,它保存原始实例和传入实例的总和.
我通常期望大多数方法修改它们被调用的实例,而不是返回相同类型的新对象,但是如果有一个很好的用例来保持实例const并且一直返回一个新实例你当然可以做那
除非是"预期失败",例如尝试添加到集合,否则不要返回布尔值.如果出现问题,请抛出异常.
现在,您可以返回修改后的副本 - 或者您可以添加到现有对象.不变性通常是一个不错的属性......但Java中的大多数集合都是可变的.如果你要沿着不可变的路线走下去,你可能要考虑使用plus而不是add- 它给人一种"你应该看到的结果,我不会改变目标"IMO的感觉.