Am使用Bean类获取/设置属性值。在某些情况下,由于该值为null,因此会出现gettig Exception in thread "main" java.lang.NullPointerException
错误。当我们从bean类中获取/设置值时,处理空指针异常的最佳实践是什么。
该三元运算符好用还是其他建议?
请在下面的代码行中获取空指针异常。
doc.setCatalog_title(sourceAsMap.get("catalog_title").toString());
答案 0 :(得分:0)
nullpointer异常的基本原因是您正在从null变量中调用方法或变量,其中null变量是指当前不保存任何对象引用的变量。因此,避免这种情况的简单方法是为该变量分配一个引用,在该引用上可以调用后续任务
现在这可以用n号来处理。方式,其中一些基本方式是:
1)使用if条件
if(doc!=null && sourceAsMap!=null && sourceAsMap.get("catalog_title")!=null)
doc.setCatalog_title(sourceAsMap.get("catalog_title").toString());
2)使用三元运算符:
doc = null == doc ? new Document():doc;
doc.setCatalog_title(sourceAsMap!=null && sourceAsMap.get("catalog_title")!=null ? sourceAsMap.get("catalog_title").toString() : null);
希望有帮助
答案 1 :(得分:0)
您可以使用Guava前提条件(https://github.com/google/guava/wiki/PreconditionsExplained),因为这是在执行类之前检查类的前提条件的一种好习惯。您可以使用checkNotNull(T)
。
如果您期望系统中为空,请使用 Optional 类https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html,
如果您使用的是Java 7,则可以使用 Guava https://github.com/google/guava/wiki/UsingAndAvoidingNullExplained
中的 Optional