Enumeration < 사이에 차이점이 있습니까? 확장 ZipEntry > 및 열거 형 <ZipEntry>? 그렇다면 차이점은 무엇입니까?열거 형의 차이 <? 확장 ZipEntry> 및 열거 형 <ZipEntry>?
답변
유형 매개 변수가 "출력"위치에서만 사용되기 때문에 수행 할 수있는 작업의 측면에서 실제적인 차이점이 없습니다. 반면에 을 중 하나로 사용할 수 있다는 점에서 큰 차이가 있습니다.
Enumeration<JarEntry>
이 있다고 가정하면 Enumeration<ZipEntry>
을 인수로 취한 메서드로 전달할 수 없습니다. 당신은 Enumeration<? extends ZipEntry>
복용 방법으로 전달할 수 있습니다.
입력 위치와 출력 위치 모두에서 type 매개 변수를 사용하는 유형이있는 경우에 더 재미 있습니다. List<T>
이 가장 확실한 예입니다. 다음은 매개 변수가 변형 된 메서드의 세 가지 예제입니다. 각각의 경우에 목록에서 항목을 가져 와서 다른 항목을 추가하려고합니다.
// Very strict - only a genuine List<T> will do
public void Foo(List<T> list)
{
T element = list.get(0); // Valid
list.add(element); // Valid
}
// Lax in one way: allows any List that's a List of a type
// derived from T.
public void Foo(List<? extends T> list)
{
T element = list.get(0); // Valid
// Invalid - this could be a list of a different type.
// We don't want to add an Object to a List<String>
list.add(element);
}
// Lax in the other way: allows any List that's a List of a type
// upwards in T's inheritance hierarchy
public void Foo(List<? super T> list)
{
// Invalid - we could be asking a List<Object> for a String.
T element = list.get(0);
// Valid (assuming we get the element from somewhere)
// the list must accept a new element of type T
list.add(element);
}
자세한 내용은 읽기 :
을 네, 바로 sun generics tutorials 중 하나 :
여기 Shape는 세 개의 하위 클래스 인 Circle, Rectangle, 및 Triangle이있는 추상 클래스입니다.
public void draw(List<Shape> shape) { for(Shape s: shape) { s.draw(this); } }
그것은 무승부() 방법 만 모양의 목록을 호출 할 수 있으며, 목록에서 호출 할 수 없음을 주목할 필요가있다 예를 들어 원형, 사각형, 삼각형의 . 방법을하기 위해 다음과 같이이 작성해야, 모양의 모든 종류의 수용 : 이제
public void draw(List<? extends Shape> shape) { // rest of the code is the same }
방금 갔어요 그리고 나는 우리가 C#을 세계에 이상이 있었으면 좋겠다 뭔가를 생각 나게 . Logic and its application to Collections.Generic and inheritance
선택있는 다음과 같습니다 :
- Contravariance and Covariance in C# (코드 링크가 제공하는 것보다 다른
는이 질문에 대한 답변이 주제와 관련하여 C# 및 자바에 대한 좋은 링크가있다 C#의 특정 및 구문 [아직]가 존재하지 않기 때문에, 이론적이지만 잘 일반적인 주제를 포함한다.)
- Java generics and the covariance and contravariance of arguments
- Java generics tutorial FR 옴.
- 1. 다른 열거 형의 열거 형
- 2. 열거 형의 기능 확장
- 3. 확장 방법과 열거 형
- 4. C# 열거 형의 공백
- 5. 열거 형 및 주석
- 6. 자바 : 특정 열거 형 및 일반 열거 형 <?> 매개 변수
- 7. Java : 집합의 열거 형 <String>
- 8. DB의 열거 형 또는 열거 형 열거 형
- 9. Java 확장 가능 열거 형
- 10. 열거 형의 VB 브래킷?
- 11. 열거 형의 인덱스 반환
- 12. 목록과 열거 형의 차이점
- 13. 열거 형 및 상속
- 14. 부스트 :: 임의 및 열거 형
- 15. 열거 형의 Delphi RTTI SetValue
- 16. XSD 요소 및 열거 형
- 17. 열거 형
- 18. 반복 대. 열거 형
- 19. UI 용 정렬 열거 형
- 20. 열거 형의 값 안에 열거 형을 중첩하는 방법
- 21. 한 열거 형의 요소를 다른 열거 형에 매핑하는 방법은 무엇입니까?
- 22. 복합 형 열거 형
- 23. 자바 : 익명 열거 형?
- 24. Java에서 열거 형의 문제가 발생했습니다.
- 25. C# 파일에서 열거 형의 함수, 열거 형 및 값 가져 오기
- 26. 봄, 콩 및 열거 형의 값
- 27. 열거 형의 serialization을위한 함수 템플릿
- 28. C# 열거 형 변환을 방지합니다
- 29. 열거 형 및 사용자 입력
- 30. 열거 형 및 해당 값
ZipEntrySubclass는 JarEntry와 같습니다 (ZipFile.entries에서 와일드 카드를 사용하는 이유)? –
감사합니다 톰 - 내 대답을 편집합니다 :) –