Java 如何检查对象中的所有非基本元素是否为null

Java 如何检查对象中的所有非基本元素是否为null,java,Java,是否有快捷方式检查对象的所有元素(以及它们的元素)是否为空。例如,我想检查country对象(及其城市和街道)是否为null?我不想像这样一个一个地检查它们 country == null || country.city == null || country.city.street == null public class Country{ City city; .... } public class City{ Street street; .... } publ

是否有快捷方式检查对象的所有元素(以及它们的元素)是否为空。例如,我想检查country对象(及其城市和街道)是否为null?我不想像这样一个一个地检查它们

country == null || country.city == null || country.city.street == null


public class Country{

  City city;
  ....

}

public class City{

  Street street;
  ....
}

public class Street{
  ....
}

没有快捷方式:您必须递归浏览实例并检查它们的字段。您可以使用中所示的自定义版本的浏览器。无论如何,如果您使用的是深奥的遗留代码,那么这种方法是有意义的,而如果您正在编写新的类,则最好在工厂方法的构造函数中强制执行所有非null。

使用
=
操作符。确切地说,
something==null
No,没有捷径。实现这种逻辑是您的工作。可能您必须编写自己的方法来检查所有字段,并相应地返回true/false。您面临的基本问题是为什么存在构造函数—以确保数据上的一组假设,例如,某些字段不为空。如果您不想通过构造函数强制执行给定的字段,您必须处理这个通用数据容器并手动检查所有内容。您必须递归浏览吗?我认为当你必须这样做时,答案已经很清楚了——并不是所有包含的引用都是空的。它们在第二级上可能是空的,依此类推:),但是你启动的对象必须至少有一个非空引用,因此检查可能返回false。