在Bean类中处理线程“主” java.lang.NullPointerException中的异常的最佳实践

时间:2018-06-24 05:13:00

标签: java nullpointerexception

Am使用Bean类获取/设置属性值。在某些情况下,由于该值为null,因此会出现gettig Exception in thread "main" java.lang.NullPointerException错误。当我们从bean类中获取/设置值时,处理空指针异常的最佳实践是什么。

该三元运算符好用还是其他建议?

请在下面的代码行中获取空指针异常。

doc.setCatalog_title(sourceAsMap.get("catalog_title").toString());

2 个答案:

答案 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