Java 访问Netbeans从XML模式自动生成的列表

Java 访问Netbeans从XML模式自动生成的列表,java,xml,jaxb,netbeans-7.1,Java,Xml,Jaxb,Netbeans 7.1,我已经在Netbeans中为XML模式文档自动生成代码,并将其放入名为jaxb的包中。根元素营养包含一个名为food的子元素,它可能会出现很多次 <xsd:element name="food" maxOccurs="unbounded"> Netbeans抱怨说“食物在jaxb.Nutrition中具有受保护的访问权限”,我不能公开这个列表,因为它是自动生成的。我已经查看了自动生成的代码,其中包含对列表的引用,只有一个getter返回列表的副本。如何访问列表以添加食物对象?答案在

我已经在Netbeans中为XML模式文档自动生成代码,并将其放入名为jaxb的包中。根元素营养包含一个名为food的子元素,它可能会出现很多次

<xsd:element name="food" maxOccurs="unbounded">

Netbeans抱怨说“食物在jaxb.Nutrition中具有受保护的访问权限”,我不能公开这个列表,因为它是自动生成的。我已经查看了自动生成的代码,其中包含对列表的引用,只有一个getter返回列表的副本。如何访问列表以添加食物对象?

答案在于您的问题,只需使用getter获取列表,然后将对象添加到列表中即可


您正试图访问受保护对象的属性,因此访问该属性的方法是使用get/set方法。这个概念被称为封装。

我明白你的意思。没有setList()方法,因为我们希望每个实例化的实例只处理一个列表,我们不希望传递新列表。
protected List<Nutrition.Food> food;
Nutrition nutrition = objFactory.createNutrition();  //make a Nutrition object
Food food1 = objFactory.createNutritionFood();       // make a Food object
nutrition.food.add(food1);                           // add a Food object