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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: