标签:
不要抱着过去不放,拒绝新的观念和挑战。
本讲内容:泛型与反射机制
一、泛型的基本概念
泛型是java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
譬如:ArrayList<Student> stu=new ArrayList<Student>();通过泛型将类型定下来,不用再强转了。
使用泛型有下面几个优点:
1、类型安全
2、向后兼容
3、层次清晰
4、性能较高,有GJ(泛型java)编写的代码可以为java编译器和虚拟机带来更多的类型信息,这些信息对java程序做进一步优化提供条件。
二、反射机制
反射机制是将泛型固定的类的所有方法和成员全部可以显示出来,以供程序员可以确定程序的编写是否有误的机制。
我们通过二个例子感受一下
package a; public class Text { public static void main(String[] args) { Animal<String> a=new Animal<String>("dan"); a.showTypeName(); } } //定义一个类 class Animal<T> { private T o; public Animal(T o) { this.o=o; } public void showTypeName() { System.out.println("类型是:"+o.getClass().getName()); } }
类型是:java.lang.String
package a; import java.lang.reflect.Method; public class Text { public static void main(String[] args) { Animal<Bird> a=new Animal<Bird>(new Bird()); a.showTypeName(); } } class Bird{ public void sleep() { System.out.println("sleep"); } public void eat() { System.out.println("eat"); } } //定义一个类 class Animal<T> { private T o; public Animal(T o) { this.o=o; } //得到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()); } } }
类型是:a.Bird sleep eat
本讲就到这里,Take your time and enjoy it
标签:
原文地址:http://blog.csdn.net/liguojin1230/article/details/42371067