学习笔记十八:泛型

不要抱着过去不放,拒绝新的观念和挑战。


本讲内容:泛型与反射机制


一、泛型的基本概念

泛型是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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值