문제

~ 안에 Java 1.4.2, 수업 java.math.BigInteger 인터페이스를 구현합니다 Comparable, Serializable.

~ 안에 Java 1.5.0, 수업 java.math.BigInteger 인터페이스를 구현합니다 Serializable, Comparable<BigInteger>.

이것은 내가 물어 보는 데 도움이되는 예일뿐입니다. < 그리고 >. 내가 정말로 궁금해하는 것은 < 그리고 > 물건.

내 질문은 세 가지입니다.

  • 무엇을합니까 <BigInteger> 의 일부 implements 진술은 의미가 있습니까?
  • 그 구문은 무엇입니까?
  • 그리고 그것은 무엇을합니까?

추신 : Google을 위해 정말 어렵습니다 < 그리고 > 그리고 검색 할 수 없습니다 < 그리고 > 처음에.

감사!

도움이 되었습니까?

해결책

읽기 Java Generics 튜토리얼. 각도 브래킷 사이의 것은 유형 매개 변수입니다. 비교할 수있는 것은 일반적인 클래스이며,이 경우 각도 브래킷은 클래스가 다른 bigintegers와 비교할 수 있음을 의미합니다.

이 경우 조금 더 설명하려면 비교할 수있는 Javadoc 1.5에서. 그것이 선언되어 있습니다 Comparable<T>, 그리고 그게 compareTo 메소드는 유형의 인수를 가져옵니다 T. T는 인터페이스가 사용될 때 "채워진"유형 매개 변수입니다. 따라서이 경우 구현을 선언합니다 Comparable<BigInteger> 당신이 있어야한다는 것을 암시합니다 compareTo(BigInteger o) 방법. 다른 클래스가 구현 될 수 있습니다 Comparable<String> 그것을 구현해야한다는 것을 의미합니다 compareTo(String o) 방법.

바라건대 위의 스 니펫의 이점을 볼 수 있기를 바랍니다. 1.4의 서명 compareTo 만 가져갈 수있었습니다 Object 모든 종류의 클래스가 비교할 수 있었고 필요한 것을 정확히 알 수있는 방법이 없었기 때문에. 그러나 제네릭을 사용하면 특정 클래스와 관련하여 비교할 수 있음을 지정한 다음 해당 클래스를 매개 변수로만 취하는보다 구체적인 비교 방법을 작성할 수 있습니다.

여기의 이점은 두 가지입니다. 첫째, 당신은 할 필요가 없습니다 instanceof 방법의 구현에서 확인 및 캐스트. 둘째, 컴파일러는 컴파일 타임에 훨씬 더 많은 유형 확인을 수행 할 수 있습니다. Comparable<BigInteger>, 유형이 일치하지 않기 때문에. 컴파일러가이를 지적 할 수있는 것이 훨씬 낫습니다. 이는 일반적으로 비 게 릭 코드에서 발생했던 런타임 예외를 유발하는 것이 아니라

다른 팁

나는 그것이 제네릭이라고 확신합니다

http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html

나는 비슷한 것을 물었다 (c#) 유용한 정보가 있습니다. 방법은 무엇입니까u003CClassName> 평균?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top