Comparable
은 하나의 함수 만 내 보내며 that function은 "this"(Comparable을 구현하는 클래스) 매개 변수 하나만 허용하므로 Comparable을 매개 변수화 한 이유는 무엇입니까? Comparable가 자연 순서 부에 사용된다면, 왜이 인터페이스를 구현하는 클래스와 다른 클래스를 전달할 수 있습니까?왜 Comparable은 매개 변수화 되었습니까?
답변
이 인 것을 생각하면 유용합니다. 예를 들면 :
public <T extends Comparable<T>> void sort(List<T> list)
당신이 형태 보증 된 방법으로 item.compareTo(otherItem)
를 호출 할 수 있습니다 그런 식으로, 너무 오래 둘 T
을만큼. 그것을을 구현할 때
public int compareTo(MyClass other)
대신 사용할 필요의 : 다음
public int compareTo(Object other)
및 주조.
그렇습니다. Comparable<SomethingElse>
을 구현하는 것은 매우 이상한 일입니다. 그러나 "이 인터페이스를 구현하는 유형"을 일반적인 방법으로 참조 할 수있는 다른 방법은 없으며 "기타"표현을 표현하는 것이 유용합니다. 깔끔하게.
X
과 Y
의 두 가지 유형이 모두 Comparable<B>
일 수 있습니다. X
및 Y
이 모두 확장되어 있거나 (B
을 구현하는 경우) 이러한 개체를 자유롭게 비교할 수 있습니다.
W
은 이론적으로는 Comparable<V>
입니다. 즉, V
과 비교할 수 있지만 이 아닌은 W
과 비교할 수 있습니다. 지금은 좋은 유스 케이스를 생각할 수는 없지만 가능합니다.
AFAIK, 그것은 T가 그 자체와 비교 가능하다고 말하는 유일한 방법입니다.
그들은 이것을 표현하기 위해 몇 가지 축약어를 추가 할 수 있었지만 그다지 짧지는 않았을 것으로 생각됩니다.
Rajikumar, 당신은 이미 당신의 질문에 대답했습니다. Comparable은 Garantee 형식 안전성에 일반적이며 Comparable을 구현하는 클래스 인 올바른 형식의 인수를 제공하는지 확인하십시오.
이 매개 변수를 사용하면 instanceof 연산자를 사용할 필요가 없습니다.
Comparable은 개체의 인스턴스가 다른 인스턴스와 일치하는지 비교하는 데 자주 사용됩니다. 예를 들어 DogA가 DogB와 동일한 경우 지금 원한다면 아무도 고양이가 아니라는 것을 알 수 있습니다. 그래서 그들은 고양이가 개 이건간에 다른 기원을 가지고 있기 때문에 결코 보지 않을 것입니다. 이
- 1. Java List가 매개 변수화 되었습니까?
- 2. 왜 창과 문서가 매개 변수로 전달 되었습니까?
- 3. 매개 변수화 된 SQL은
- 4. 매개 변수화 된 쿼리
- 5. EAR 매개 변수화
- 6. 루비의 MySQL 매개 변수화
- 7. SQL 쿼리 매개 변수화
- 8. 매개 변수화 된 형식
- 9. SQL 매개 변수화
- 10. 강제 매개 변수화
- 11. 스칼라에서 매개 변수화 유형
- 12. 매개 변수화 된 정렬
- 13. 파이썬 스크립트 매개 변수화
- 14. Java : Map 객체의 매개 변수화
- 15. Teamcity - 매개 변수화 된 빌드
- 16. 매개 변수화 된 전략 패턴
- 17. 매개 변수화 된 테이블 이름
- 18. 매개 변수화 된 junit 테스트
- 19. QTP의 링크 요소 매개 변수화
- 20. $ .ajax + 성공 함수 매개 변수화
- 21. PowerDesigner 매개 변수화 된 클래스
- 22. Jenkins 매개 변수화 된 선택
- 23. 관련 매개 변수화 된 유형
- 24. 자바에서 매개 변수화 된 어댑터
- 25. C# ASP.NET SQL 매개 변수화
- 26. 매개 변수화 된 SQL 열?
- 27. enum을 사용하여 객체 매개 변수화
- 28. 반복 매개 변수화 된 쿼리
- 29. 매개 변수화 된 쿼리의 예
- 30. 매개 변수화 된 쿼리 jqgrid
몇 가지 물음표가 :) :)) – moonwave99