首页 > 代码库 > 学习笔记十八:泛型
学习笔记十八:泛型
不要抱着过去不放,拒绝新的观念和挑战。
本讲内容:泛型与反射机制
一、泛型的基本概念
泛型是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
学习笔记十八:泛型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。