SonarQube针对从XSD文件在Java文件中创建的变量抛出“ NullPointer异常可能抛出”错误

时间:2019-05-12 10:16:27

标签: java nullpointerexception xsd sonarqube

我有一个从.xsd文件生成的Java类的列表。在运行SonarQube时,它抱怨可能抛出NullPointerException,因为“ _Parent”在此处为空

我的xsd代码是

<xsd:element name="Parent">
<xsd:complexType>
 <xsd:sequence>
 <xsd:element name="ParentId" type="xsd:integer"/>
 </xsd:sequence>
</xsd:complexType>
<xsd:element name="Parent">

<xsd:element name="App">
<xsd:complexType>
 <xsd:sequence>
 <xsd:element name="Parent" minOccures="0" maxOccurs="unbounded"/>
 </xsd:sequence>
</xsd:complexType>
<xsd:element name="Parent">

Parent变量在App类中声明为

protected com.sun.xml.bind.util.ListImpl _Parent;
protected com.sun.ml.bind.util.ListImpl _getParent()
{
if(_Parent == null){
_Parent = new com.sun.ml.bind.util.ListImpl(new java.util.ArrayList()}
return _Parent
}

它在下一行抱怨

int id =0;
final int len= ((_Parent == null)? 0 :_Parent.size());
while(id != len){ 
if(**_Parent**.get(id) instanceof java.xml.bind.Element){ context.childAsBody(((com.sun.xml.bind.JAXBObject) _Parent.get(id ++)), "Parent"); 

有人可以帮我这个忙吗?预先感谢

1 个答案:

答案 0 :(得分:0)

这是一个误报。

如果_Parent为空,则id != len将不为真,永远不会进入for循环,并且不会引发NullPointerException