什么是java泛型

什么是泛型呢?

我们首先写一个最简单的泛型类来说明:

public class Generics<T> { //T是type的简称,可以使用任何名称代替
	private T o; //泛型成员变量
	public Generics(T o){
		this.o=o;
	}
	public T getObject() {
		return o;
	}
	public void setObject(T o) {
		this.o = o;
	}
	public String getType() {
		return o.getClass().getName();
	}
}

这个泛型类包括自己的构造函数,以及get、set方法和一个getType方法。

我们可以这样使用这个类:

public class GenericsDemo{
	public static void main(String[] args){
		
		Generics<Integer> intObject=new Generics<Integer>(1);
		System.out.println("the value of intObject is " + intObject.getObject());
		System.out.println("the type of intObject  is " + intObject.getType());

		Generics<String> stringObject=new Generics<String>("hi, generics!");
		System.out.println("the value of stringObjectis " + stringObject.getObject());
		System.out.println("the type of stringObjectis " + stringObject.getType());
	}
}

我们可以使用这个泛型类的各种类类型的版本(如例子中的Integer, String, 以及所有Object类及其子类)。不过泛型并不支持基本数据类型。

很明显,使用java泛型,我们可以省掉强制类型转换。编译器会保留参数的类型信息,执行类型检查,执行类型转换操作。因此开发人员不需要自己确保类型转换的安全性,而把这个交给编译器去做。


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值