Java Generics를 사용하지 않는 경우 동일한 클래스에서 반환 유형 만 다른 두 가지 메소드를 사용할 수 없다고 생각합니다.제네릭을 사용하여 메서드 오버로드를 수행하고 메서드 서명의 제네릭 형식 만 변경할 수 있습니까?
즉,이 불법 것 : 그런 다음 두 가지 방법이 존재한다면 서로 다른 인터페이스를 구현할 수 제네릭 형식을 돌려주는 메소드를 오버로드 할 때
public HappyEmotion foo(T emotion) {
// do something
}
public SadEmotion foo(T emotion) {
// do something else
}
이 같은 사실인가요 같은 클래스의 정의 :
이public <T extends Happy> T foo(T emotion) {
// do something
}
public <T extends Sad> T foo(T emotion) {
// do something else
}
이 불법겠습니까?
컴파일하려고 했습니까? 컴파일러는 합법적이고 불법적 인 것을 즉시 알려줍니다. 더 나은 질문은 '왜 불법입니까?'입니다. 당신이 그 이유를 이해하지 못한다면. –