我有一个从.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");
有人可以帮我这个忙吗?预先感谢
答案 0 :(得分:0)
这是一个误报。
如果_Parent
为空,则id != len
将不为真,永远不会进入for循环,并且不会引发NullPointerException
。