나는이 코드를 가지고 : 나는 그래서 다음 다른 클래스로 사용할 수 있습니다 건조하게 유지하기 위해 일부를 촬영했습니다Java에서 Generics를 어떻게 캐스팅 할 수 있습니까?
FVDTO.setStatus("fail");
List<String[]> invalidFields = new ArrayList<String[]>();
Iterator<ConstraintViolation<HazardSubmission>> iterator = cv.iterator();
while(iterator.hasNext()) {
ConstraintViolation<HazardSubmission> i = iterator.next();
String property = i.getPropertyPath().toString();
String message = i.getMessage();
invalidFields.add(new String[] { property, message });
}
FVDTO.setInvalidFields(invalidFields);
return new JsonResolution(FVDTO);
을, 즉 HazardSubmission는 하나 개의 클래스이며, 다른 사람이있을 것이다. 아래의 코드는 같이 할 필요가 작동하지 않습니다 여기에 분명히 수동으로 <HazardSubmission>
캐스팅 내 시도를 보여줍니다 o.getClass();
public static List<String[]> GetInvalidProperties(Set<ConstraintViolation<Object>> cv, Object o) {
List<String[]> invalidFields = new ArrayList<String[]>();
Iterator<ConstraintViolation<HazardSubmission>> iterator = cv.iterator();
while(iterator.hasNext()) {
ConstraintViolation<HazardSubmission> i = iterator.next();
String property = i.getPropertyPath().toString();
String message = i.getMessage();
invalidFields.add(new String[] { property, message });
}
} 정말 난 무엇을 모르기 때문에 두 번째 코드 블록이 실패
그러고 나면, 일반적인 객체 타입을 가진 param 1을 cv로 넘기고, 두 번째 매개 변수로 그 타입을 전달하려고한다.
다른 사람에게이 방법을 설명해 주시겠습니까?
말할 수 지정된 클래스 또는 인터페이스를 확장하는 경우가 일반적인 방법
찾고있을 거라고 생각하지만, 전체 제네릭을 사용할 때의 주안점은 무엇입니까? – edthethird
'HazardSubmission'에서만 메서드가 작동 할 때 왜 매개 변수에'Object'를 원합니까? –