> Java > Java시작하기 > Java 제네릭에 대한 자세한 설명(지식 요약)

Java 제네릭에 대한 자세한 설명(지식 요약)

青灯夜游
풀어 주다: 2019-11-26 17:10:06
앞으로
3213명이 탐색했습니다.

Java 제네릭에 대한 자세한 설명(지식 요약)

개념

출처: Java는 설계가 시작되고 JDK 1.5에 도입되기 전까지 보편적이지 않았습니다. Java 제네릭은 삭제를 통해 구현됩니다. 삭제가 뭔지 아시나요? 아래를보세요.

개념: 일반 클래스와 메서드는 특정 유형 또는 사용자 정의 클래스만 사용할 수 있습니다. 다양한 유형의 코드에 적용할 수 있는 코드를 작성하려는 경우 이러한 엄격한 제한으로 인해 코드에 많은 제약이 적용됩니다. 제네릭은 매개변수화된 유형의 개념을 구현하여 코드를 여러 유형에 적용할 수 있도록 합니다. 프로그래밍 언어에 제네릭이 등장했을 때 제네릭의 원래 목적은 클래스와 메서드가 광범위한 표현력을 가질 수 있도록 하는 것이었습니다.

【추천 학습: java 비디오 튜토리얼

간단한 제네릭

제네릭을 사용하는 데에는 여러 가지 이유가 있으며, 가장 중요한 이유 중 하나는 컨테이너 클래스를 만드는 것입니다. 아직 유형을 지정하지 않았지만 나중에 사용할 유형을 결정합니다. 이를 달성하려면 클래스 이름 뒤에 유형 매개변수를 꺾쇠 괄호로 묶어 사용해야 합니다. 그런 다음 이 클래스를 사용하면 이 유형의 매개변수가 실제 유형으로 대체됩니다. 아래 예에서 t는 유형 매개변수입니다. 코드는 다음과 같습니다.

그러나 많은 소스 코드에서 일부 일반 클래스에는 Java와 같은 여러 일반 매개변수가 있습니다. UTIL 기능. 세 가지 유형의 매개변수 t, u, r을 사용하는 이중 기능.

일반 메서드

일반 메서드는 메서드를 클래스와 독립적으로 만듭니다. 일반 코드를 작성할 때 기본 지침은 가능할 때마다 일반 메서드를 사용하는 것입니다. 즉, 전체 클래스에 대해 일반 메서드 대신 일반 메서드를 사용할 수 있다면 일반 메서드를 사용하면 상황이 더 명확해지기 때문입니다. 또한 정적 메서드의 경우 일반 클래스의 형식 매개 변수에 액세스할 수 없으므로 정적 메서드가 일반화 기능을 사용해야 하는 경우 일반 메서드로 만들어야 합니다.

Erasure of Generics

Java 프로그래밍 사고의 일반 장에서 "삭제의 신비" 섹션을 읽을 때 특히 현기증이 났고, 아래를 내려다보면 점점 더 혼란스러워졌습니다. 특히 경계와 와일드카드를 보면 조금 혼란스럽습니다. 먼저 삭제가 무엇인지 살펴보겠습니다. 일반 코드에서는 일반 매개변수 유형에 대한 정보를 사용할 수 없습니다. Java 제네릭은 삭제를 통해 구현됩니다. 즉, 제네릭을 사용할 때 특정 유형이 지워지고 그에 대해 아는 유일한 것은 객체를 사용한다는 의미입니다. 제네릭은 원래 Java에 도입되지 않았기 때문에 이전 버전의 JDK와 호환되도록 설계되었습니다. ErAcess는 Java의 일반 구현 간의 절충안입니다. 따라서 실행하면 list은 list와 같습니다. 실행 중이지만 컴파일 시간에 list은 이 문자열 유형의 목록 컨테이너를 나타내고 list는 현재 정수 유형의 목록 컨테이너를 나타냅니다. 예를 들어, Java 프로그래밍 아이디어의 예입니다.

제네릭의 경계

Java의 제네릭은 컴파일할 때 T가 유형을 나타내며, 경계가 지정되지 않으면 객체와 같습니다. extends 키워드를 사용하여 제네릭의 경계를 지정할 수 있습니다. f()를 호출할 수 있으려면 일반 클래스 경계가 주어진 일반 클래스를 도와 경계 뒤의 유형을 허용해야 한다고 컴파일러에 알릴 수 있습니다. 여기서는 확장 키워드가 사용됩니다. 위의 코드를

Summary

로 변경하세요. Java 제네릭의 기능은 많은 오픈 소스 프레임워크에서 널리 사용됩니다. 이를 위해서는 심층적인 이해가 필요합니다. 코딩을 시작하면서 앞으로는 다른 이해를 가지게 될 것 같습니다. 이제 나는 책을 읽어야만 많은 것을 알 수 있다.

이 기사는 Java 시작하기 칼럼에서 가져온 것입니다. 학습을 환영합니다!

위 내용은 Java 제네릭에 대한 자세한 설명(지식 요약)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿