e.getCategory() != null ? e.getCategory().getName() : "";
这引发NullPointerException
,我不明白为什么。谁能解释一下?
答案 0 :(得分:6)
e
为null
。 击>
答案 1 :(得分:6)
根据Java的优先规则,您的代码被解析如下:
(("\"category\":" + "\"" + e.getCategory()) != null) ? e.getCategory().getName() : ""
将整个连接( ("..." + e.getCategory())
!= null
)作为条件。
由于"..." + e.getCategory()
永远不会null
,因此代码无效。
答案 2 :(得分:1)
e
是否为空?
也许你应该试试这个:
(e != null) ?
(e.getCategory() != null) ?
e.getCategory().getName() :
""
: ""
或者说,简化形式:
(e != null && e.getCategory() != null) ?
e.getCategory().getName() :
""
答案 3 :(得分:0)
发现解决方案......
CORRECT
bufo.append("\"category\":" + "\"" + ((e.getCategory() != null) ? e.getCategory().getName() : "") + "\",");
问题
bufo.append("\"category\":" + "\"" + e.getCategory()!=null?e.getCategory().getName():"" + "\",");