다음은 제 코드입니다. 컴파일러가 컴파일을 거부합니다.일반 메서드가 컴파일되지 않습니다.이 메서드는 인수에 적용되지 않습니다.
private transient List<? extends Map<String, Object>> donnees;
// ...
public <M extends Map<String, Object>> void addDonnee(M nouvelleDonnee) {
getDonnees().add(nouvelleDonnee);
}
public List<? extends Map<String, Object>> getDonnees() {
// ...
return donnees;
}
왜이 오류가 발생합니까?
The method add(capture#4-of ? extends Map<String,Object>) in the type List<capture#4-of ? extends Map<String,Object>> is not applicable for the arguments (M)
편집 나는 내 문제 해결 방법은 다음과 같습니다 :
private transient List<Map<String, Object>> donnees;
// ...
public void addDonnee(Map<String, Object> nouvelleDonnee) {
getDonnees().add(nouvelleDonnee);
}
public List<Map<String, Object>> getDonnees() {
// ...
return donnees;
}
을 이제 컴파일러는 행복입니다! :)
확인 [잭]의 대답 (http://stackoverflow.com/questions/1684121/generics-error-not-applicable-for-the-arguments) – GokcenG