我已经在Netbeans中将XML模式文档的代码自动生成到名为jaxb的包中。根元素Nutrition包含一个名为food的子元素,该元素可能会出现多次。
<xsd:element name="food" maxOccurs="unbounded">
自动生成创建的营养对象包含受保护的食物对象列表。
protected List<Nutrition.Food> food;
当我尝试用点符号将Food对象添加到List时,我无法访问该列表来添加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
Netbeans抱怨说"食物在jaxb.Nutrition中具有受保护的访问权限",我无法公开该列表,因为它是自动生成的。我已经查看了其他方法的自动生成代码,并引用了List,只有一个getter返回列表的副本。如何访问列表以添加食物对象?
答案在于您的问题,只需使用getter获取列表,然后将对象添加到其中。
您正试图访问受保护的对象营养的属性,因此访问该属性的方法是使用get/set方法。这个概念被称为封装。