2012-02-05 3 views
0

XML 스키마 문서의 Netbeans에 jaxb라는 패키지에 자동 생성 된 코드가 있습니다. 루트 요소 Nutrition에는 food라는 이름의 자식 요소가 여러 번 나타날 수 있습니다.Netbeans의 XML 스키마에서 자동 생성 된 목록 액세스

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

자동 생성으로 생성 된 영양 개체에는 보호 된 음식 개체 목록이 포함되어 있습니다. 나는 점 표기법과 함께 목록에 음식 개체를 추가하려고하면

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 

넷빈즈 음식은 JAXB의 접근을 보호하고있다 "고 불만을 개체를 추가 할 수있는 목록을 액세스 할 수 없습니다. Nutrition "목록이 자동 생성되므로 목록을 공개 할 수 없습니다. 목록에 대한 참조가있는 다른 메서드에 대한 자동 생성 코드를 살펴본 결과 목록의 복사본을 반환하는 getter 만 있습니다. 식품 개체를 추가하려면 목록에 어떻게 액세스합니까?

답변

1

대답은 귀하의 질문에, 그냥 getter를 사용하여 목록을 얻은 다음 그것에 개체를 추가 할 수 있습니다.

보호되고있는 개체 영양의 속성에 액세스하려고 시도하고 있으므로 액세스 방법은 get/set 메서드를 사용하는 것입니다. 이 개념을 캡슐화라고합니다.

+0

나는 귀하의 요지를 보았습니다. 인스턴스화 된 Nutrition 인스턴스 당 단 하나의 목록 만 처리하기 때문에 setList() 메서드가 없습니다. 새 List를 전달하지 않으려합니다. – jeremyjjbrown