Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将所有字段设置为空是一种好做法吗?_Java - Fatal编程技术网

Java 将所有字段设置为空是一种好做法吗?

Java 将所有字段设置为空是一种好做法吗?,java,Java,让所有字段都等于null并在需要时创建它们是一种好做法吗 public class Products { private Map listofProducts = null; private Owner owner = null; private List<listOfProductsResults> listofProductsResults = null; private String fileName = null; private long i

让所有字段都等于null并在需要时创建它们是一种好做法吗

public class Products {

   private Map listofProducts = null;
   private Owner owner = null;
   private List<listOfProductsResults> listofProductsResults = null;
   private String fileName = null;
   private long id = 0L;


   public Products(){
   }


是相等的语句,所以不是。这是毫无意义的,我真的不喜欢代码的外观。

Java自动将对象初始化为null,但有时如果没有其他设置,则显式将其设置为null可能是一种文档形式。例如,通常人们希望构造函数初始化实例属性。显式初始化为null的one属性可能会说“这不是在构造函数中初始化的”或“这使用了延迟初始化,请小心”。这可能意味着始终通过getter进行代理,或者期望通过空检查保护访问。但是,建立这样一种模式将取决于你。

不,这没有什么区别。默认情况下,它们被初始化为
null
。不,不要这样做。如果是使用局部变量的话,只看一次你会(或应该)这样做是非常烦人的。不要这样做。节省打字、磁盘空间和时间。这是“代码噪音”。局部变量呢?我应该在方法末尾将它们设置为null吗?设置myInt=null会有什么不同?我刚刚删除了这个示例。我写得很晚!我明白了,这是否意味着我不应该初始化它们,而是应该检查对象是否为null?@AlexCartio1当然你应该检查null,而不是获取
NullPointerExceptions,
,但这并不是这个答案中所述的任何内容所暗示的。局部变量呢?我应该在方法末尾将它们设置为null吗?如果某些东西被设计或记录为可能为null,那么应该检查null。如果您是设计类及其成员的人,那么您就知道它是否可以为null。将任何变量设置为null都会删除对对象的引用。如果它是唯一的引用,它将被垃圾收集。但是由于局部变量在函数作用域的末尾被删除,所以您不需要这样做。
  if(listOfProducts == null){
      this.listOfProducts = new HashMap();
  }
private Map listofProducts = null;
private Map listOfProducts;