首页 > 解决方案 > java类中集合属性和对象属性的getter和setter的最佳实践

问题描述

我有以下实现

public class PartGroup {

   private Part iPart;

   private ArrayList<Part> iParttList;

   public Part getPart() {
      return iPart;
   }

   public void setPart( Part aPart ) {
      iPart = aPart;
   }


   public ArrayList<Part> getParttList() {
      return iParttList;
   }


   public void setParttList( ArrayList<Part> aParttList ) {
      iParttList = aParttList;
   }

}

可以为 iParttList 和 iPart 设置设置器吗?我认为只有当消费者可以使用 getter 来获取集合的创建实例并清除或向集合中添加元素时才能使用 getter 是安全的,我应该删除 setter 并添加以下实现

public ArrayList<Part> getParttList() {
      if(iParttList == null)
         iParttList = new ArrayList<Part>();

      return iParttList;
   } 

public Part getPart() {
       if(iPart == null)
          iPart = new Part();

       return iPart;
   }

最佳做法是什么?

标签: javapropertiesgetter-setter

解决方案


第二个实现防止返回 null,对吧?因此,如果这个对象有可能返回 null (因为有哪些构造函数允许这个,否则它可能会通过)并且对于您的预期用例来说这将是一件坏事,然后使用第二个实现。


推荐阅读