자바 제네릭 고급 기능

수석 자바 언어

일반적인 감각을 사용하십시오

왜 우리는 제네릭이 필요합니까?

일반적인 혜택입니다 그래서 :

데이터 타입의 다양한 적용 L 동일한 코드가 실행된다

int 형 가산기는, 예를 들면, 때때로 필요 합시킬 필요 중장비 형 이중 추가 방법을 재 입력 한 경우 긴 합산 형 이중형 달성해야 달성.

당신이 방법을 디지털 추가의 일반적인 각 유형을 다시 할 필요가없고, 필요한 코드의 양보다 더 이상 존재하지 않으면 추가 방법은 코드 내부의 라인을 추가 할 경우, 후속 유지 보수, 골칫거리도? 그것은 10의 방법을 수정해야합니다.

사용에 규정 된 제네릭 형식의 난, 캐스트 할 필요가 없습니다

예를 들어, 디폴트 제네릭 형식 개체를 설정하지, 당신은 매우 행복 데이터 저장, 이중 문자열, 지능, 입금 만 사용하는 경우 재앙 수 있습니다. 당신은 특정 대상 유형으로 변환해야하고, 그것은 "java.lang.ClassCastException가"예외하는 경향이있다.

일반 클래스와 일반적인 인터페이스

일반은, 또는 "유형을 매개 변수화."

매개 변수는 인수를 전달하고자 할 때 메소드를 호출, 익숙한 유형의 사용자 정의 메소드 매개 변수입니다.

이름이 암시 하듯이, 유형 인 원래의 특정 유형의 파라미터 프로세스 변수 파라미터 마찬가지로, 또한 파라미터 입력 양식 (입력 파라미터로 지칭 될 수있다) 정의 이때, 특히 인입 / 통화를 사용할 때 (형식 인수)을 입력합니다.

일반적인 성질이고 파라미터 유형 , 과거에 다른 결과 다른 출력 매개 변수는, 또한 파라미터 유형, 출력의 서로 다른 유형의 다른 파라미터 일 수있다.

일반적인 사용 즉, 작업의 데이터 타입, 클래스, 인터페이스 및 방법의 형태로 사용될 수있는 일반적인 클래스 일반 인터페이스 일반적인 방법이라고 매개 변수로 규정된다 .

,

정의 형 변수

와일드 카드의 상한 형태 서브 연장 나타날 수 연장

슈퍼 와일드 카드의 하한은 슈퍼 부모 유형을 수신 할 수있다

T는 Comparable를 확장 中

T는 또한 인터페이스 클래스 수있다 유형 및 하위 유형 결합, 부속의 유형 결합되어야 나타내는 필적 결합 형식을 나타낸다.

이 시간, 우리는 인터페이스 Comparable를 구현, 그것은 오류를 컴파일하는 클래스의 어떤 인스턴스를 전달하지하려고합니다.


일반 클래스 형 변수 정적 컨텍스트 실패

제네릭 및 정적이 호환되지 않습니다,

당신은 입력 변수의 도메인을 참조하거나 정적 방법 없습니다. ** 인해 제네릭에 너무 정적 부분, 다음 생성자 등을 수행하기 위해 생성 된 코드 개체의 유형을 만든 개체 때 알아야하는 것입니다. 정적 객체의 초기화 섹션이 실행되기 전에 당신이 일반 기준의 정적 부분에있는 경우 그래서, 그리고, 다음이 시간이 ** 클래스가 초기화되지 않았기 때문에 가상 머신은, 그것이 무엇인지 모르는 의심의 여지가 없다.
유형 삭제
이 일반적인 개념이 아니다, 그러나 분명, 일반적인 코드는 코드의 이전 버전과도 좋은 호환성 전에 제네릭, 개념의 도입 이전에 자바 1.5 버전입니다.

정보가 삭제됩니다 일반 정보와 관련된 JVM를 입력하기 전에, 전문 용어 유형의 삭제이라고 만 일반적인 코드 컴파일 단계에 존재하기 때문이다.

더 간단하게, 자바 가상 머신에서 일반적인 클래스와 일반 클래스는 그것에 대해 아무것도 특별한이다.
자바 제네릭의 삭제는 자바 제네릭의 중요한 특징이며, 그 목적은 너무 많은 클래스를 방지하고의 작동에 의한 과도한 소비를 만드는 것입니다. 그래서, ArrayList를하고 ArrayList를 두 경우 모두, 그것은 같은 클래스 인스턴스라고 생각합니다.

런타임에 일반적인 매개 변수를 얻기 위해 (우리는 일반적인 정보를 얻기 위해 그냥이 클래스를 생성하기 때문에, 일반적으로 익명의 내부 클래스)하지만 많은 경우에 우리는, 우리는의 방법으로 클래스를 정의 할 수 있습니다, 런타임에 일반적인 정보를 얻을 필요 요구, 예를 들어 직렬화, 역 직렬화 다른 작업을 충족합니다.

게시 71 개 원래 기사 · 원 찬양 4 ·은 10000 +를 볼

추천

출처blog.csdn.net/wang_8649/article/details/103938534