JDK 1.5 의 Generics

2229 단어 JDDKK1155 의의 G
Generics 는 JDK 1.5 의 가장 중요 한 특성 으로 Collection 을 처리 하 는 데 주로 사용 된다.다음 코드 는 JDK 1.5 디 버 깅 을 통 과 했 습 니 다.코드 인 스 턴 스 1:Demo.java 패키지 maoxiang.examples.jdk 15.generics;  import java.util.ArrayList;   import java.util.Collection;   import java.util.HashMap;   import java.util.LinkedList;   import java.util.List;   import java.util.Map; /***@author 모 상**Generics 특성 을 어떻게 사용 하 는 지 보 여 줍 니 다.코드 는 Generics 튜 토리 얼 에서 왔 습 니 다:*http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf **Generics 는 C++의 템 플 릿 과 유사 합 니 다.*구별:*1.*2.*/public class Demo{public static void main(String[]args){}/**가장 간단 한 용법*/public void Test 1(){//이전의 용법//List my IntList=new LinkedList();/1   //myIntList.add(new Integer(0)); // 2   //Integer x = (Integer) myIntList.iterator().next(); // 3.강제 변환//1.5 의 용법 List my IntList=new LinkedList();/1'   myIntList.add(new Integer(0)); //2'   Integer x = myIntList.iterator().next(); // 3'}/**익명 문자 의 용법*/public void Test 2(){List list=new ArrayList();//익명 문자 로 집합 Wildcards(list)를 인쇄 합 니 다.  Wildcards1(); /*Wildcards 2 가 Wildcards 2(List shapes)*이하 호출 오류*/Wildcards 2(list)로 정의 되면;  }   public void Wildcards(Collection< ? > c){//이전의 용법//Iterator i=c.iterator();  //for (int k = 0; k < c.size(); k++) {   //   log(i.next()); //}//1.5 의 용법/collection>c 는 for(Object e:c){log(e)를 표시 합 니 다.  }   }   public void Wildcards1() {   //Collection> c = new ArrayList();   //c.add(new Object()); // copile time error/이상 은 잘못된 용법 입 니 다.c 의 유형 을 정할 수 없 기 때문에 add 를 사용 할 수 없 지만 get 은 가능 합 니 다.정확 한 용법 은 다음 과 같다.ArrayList c=new ArrayList();  c.add("test");   List< ? > list = c;   log(c.get(0));   }   public void Wildcards2(List< ? extends Shape>shapes){//List shapes 정 의 는 List shapes 만 받 아들 일 수 있 고 List for(Shape s:shapes){s.draw()도 받 아들 일 수 없습니다.}//이하 쓰기 오류 입 니 다.인자 가 extends Shpape 로 표시 되 어 있 기 때문에 Rectangle 을 Shape 하위 클래스 로 확정 할 수 없습니다.안전 하지 않 은 호출//shapes.add(0,new Rectangle()에 속 합 니 다.  Map allDrivers = new HashMap();   Census.addRegistry(allDrivers); //아래 쓰 기 는 드라이버 가 명확 하 게 정의 되 어 있 기 때문에 List drivers=new ArrayList()를 사용 할 수 있 습 니 다.  Census.add(drivers); }/**Generic Methods 의 용법**/public void Test 3(){//다양한 유형의 함수 Object[]oa=new Object[100]에 적 용 됩 니 다.  Collection

좋은 웹페이지 즐겨찾기