Java:对象的默认值为null更好

BB.*_*BB. 2 java null arraylist default-value

第一种情况:有一个类有另一个类作为其数据成员.实例化这个类时,我们应该对数据成员做什么?

  • (A)在构造函数中:this.anotherClass = new AnotherClass();
  • (B)将其保留为null,无需实例化它.

第二种情况:有一个类有ArrayList作为其数据成员.当这个类被实例化时,我们应该对ArrayList做什么?

  • (A)在构造函数中:this.bulidingList = new ArrayList <Building>();
  • (B)将其保留为null,无需实例化它.

第三种情况:当我们创建在它的返回类型是一个方法集合,例如

public ArrayList <Building> getBuildingList(){/// Bah Bah Bah ..}

如果没有Building,我们应该返回空的ArrayList" new ArrayList <Building>() ""或null.

Whi*_*g34 5

我宁愿不使用null来避免潜在NullPointerException的.为了避免创建不必要的对象,您可以构造一个静态实例来返回,只要它是不可变的.至于空ArrayList,你可以用来Collections.emptyList()为你做这个.

最后,您需要如何定义API的工作方式.无论哪种方式,您都应该清楚地记录它,以便呼叫者知道会发生什么.