/**
* 泛型讲解 */package com.test;import java.lang.reflect.Method;import java.util.ArrayList;public class test9 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //案例一 ArrayList<Pig> al = new ArrayList<Pig>(); Pig pig1 = new Pig(); al.add(pig1); Pig temp = al.get(0); //如果不用泛型则是这样:Pig temp = (Pig)al.get(0); temp.showMessage1(); //案例二 Bird bd = new Bird(); Gen<Bird> gen1 = new Gen<Bird>(bd); gen1.showTypeName(); gen1.showMessage2(); }}//案例一class Pig{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void showMessage1() { System.out.println("这是第一个案例!!"); } }//案例二//定义一个泛型类class Gen<T> //T是参数类型{ private T o; //构造函数 public Gen(T a) { o = a; } //得到T的类型名称 public void showTypeName() { System.out.println("类型是:"+o.getClass().getName()); //通过JAVA反射机制,我们可以得到T这个类型的相关信息 Method[] m = o.getClass().getDeclaredMethods(); } public void showMessage2() { System.out.println("这是案例二!!"); }}//定义一个Bird类class Bird{ public void test1() { System.out.println("aa"); } public void count(int a, int b) { System.out.println(a+b); }}小结: