이 기사의 예는 Java에서 제네릭의 사용을 요약합니다. 참조를 위해 모든 사람을 위해 공유하십시오. 세부 사항은 다음과 같습니다.
1 기본 사용
공개 인터페이스 목록 <e> {void add (e);2 일반 및 서브 클래스
자녀는 부모의 서브 클래스이지만 목록 <hild>는 <부모> 목록의 서브 클래스가 아닙니다.
: List <bood> list = new ArrayList <string> ()가 잘못되었습니다.
위가 올바른 경우 :
List <String> () 문자열에 객체가 실패합니다.
3 개의 와일드 카드
2로 인해 Unified Collection의 출력에는 다음과 같은 구현이 불가능합니다.
void printCollection (collection <bood> c) {for (object o : c) {// do do}}}그래서 사용해야합니까? ::
void printCollection (collection <?> c) {for (Object O : C) {// 1 // do do do} // ok여기에있는 유형은 알려지지 않았지만 모든 객체는 객체이므로 위의 예 1이 정확합니다. 그러나 다음 예는 잘못되었습니다.
void add (collection <? extends myclass> c) {c.add (new myclass ());그 이유는 매우 명확합니까?
4. 세대 방법
위의 예를 달성 할 수 있습니다.
<t> add (collection <t> c, t t) {c.add (t);}시맨틱을 보장하기 위해 컴파일러는 변환 작업을 수행하는 데 도움이됩니다.
5. 일반 런타임 비교
List <String> L1은 <teger> l2 = system.out.println (l1.getClass () == l2.getClass (); / 진실
일반 클래스는 언제와 동일하기 때문입니다.
6 일반 배열 (유형이 안전하지 않도록 할 수 있음)
코드 코드를 다음과 같이 복사하십시오. list <string> [] lsa = new arraylist <string> [10];
가능하면 유형이 안전하지 않을 수 있습니다. 좋다:
Object OBLES [] OA = LICHENT <integer> (3); s = lsa [1] .get (0);
이 기사는 모든 사람의 Java 프로그램 설계에 도움이되기를 바랍니다.