/** * @author Administrator * 好处:泛型:1安全 2减少代码重用率 */ package com.test; import java.lang.reflect.Method; public class Test2 { public static void main(String[] args) { // TODO Auto-generated method stub // Gen<String> gen1 = new Gen<String>("aaa"); // gen1.showTypeName(); // // Gen<Integer> gen2 = new Gen<Integer>(1); // gen2.showTypeName(); Gen<Bird> gen3 = new Gen<Bird>(new Bird()); gen3.showTypeName(); //Java泛型的反射机制 } } //定义一个Bird class Bird { public void test1() { System.out.println("aa"); } public void count(int a, int b) { System.out.println(a+b); } } //定义一个类 class Gen<T> { private T o; //构造函数 public Gen(T a) { this.o = a; } //得到T的类型和名称 public void showTypeName() { System.out.println("类型是:"+o.getClass().getName()); //通过反射机制可以拿到类的信息,名称,返回值,修饰符等 //通过反射机制,我们可以得到T这个类型的很多信息 //得到成员函数名 Method[] m = o.getClass().getDeclaredMethods(); //打印 for (int i = 0; i < m.length; i++) { System.out.println(m[i].getName()); } } }
时间: 2024-10-15 09:58:01