2013-07-15 2 views
0

나는 이런 식으로 작동하는 메서드를 원하지만 전달한 개체의 속성에 액세스 할 수 없습니다. '.getFields()', 'getSuperType()'과 같은 클래스 메서드 만 호출 할 수 있습니다. 등등. OrderChange의 하위 클래스 인 모든 객체에는 rph 필드가 있으며 그 값이 필요합니다. 어떻게해야합니까?"List <Class <?"매개 변수가있는 Java 메소드. extends Object >> "

private boolean validateOrderChange(List<Class<? extends OrderChange>> input, boolean verifyOnly) { 
    for (Class<? extends OrderChange> orderChange : input) { 
     if (StringUtil.isNullOrEmpty(orderChange.getRph())) { 
      return false; 
     } 
    } 
} 
+1

질문을 명확히 할 수 있습니까? 필요한 클래스는 어떤 클래스에 정의되어 있습니까? – mariosangiorgio

답변

1

내가 볼때, 당신은 목록에서 Class 유형이 없습니다. 귀하의 목록에이 코드의 문제는 당신이 아마로 제네릭 형식을 필요로하는 동안은 Class<? extends OrderChange> 인스턴스로 일반 매개 변수 정의하는 것입니다 하는 클래스 OrderChange 클래스

private boolean validateOrderChange(List<? extends OrderChange>> input, boolean verifyOnly) { 
    for (OrderChange orderChange : input) { 
     if (StringUtil.isNullOrEmpty(orderChange.getRph())) { 
      return false; 
     } 
    } 
} 
1

의하지 인스턴스를 포함하도록 지정 단순히 ? extends OrderChange.

두 가지의 차이점은 사용하는 클래스가 리플렉션에서 사용되는 클래스에 대한 정보가 들어있는 데이터 구조에 대한 참조를 보유한다는 것입니다.

반대로 필요한 것은 OrderChange의 하위 클래스 중 하나를 보유 할 수있는 참조입니다.

관련 문제