java的泛型

1.public class Test<T extends Serializable>

如果知道extends 在这里的意思作用可以return掉了;

有些人疑问这里就是限定参数T必须是extends 后面的接口类型就行了。

public class Test<T extends Serializable> {

	private T type;

	public void setType(final T type) {
		this.type = type;
	}

	public T getType() {
		return type;
	}

	public static void main(final String[] args) {
		final Test<String> t1 = new Test<String>();
		t1.setType("d");
		final String type2 = t1.getType();

		final Test<Integer> t2 = new Test<Integer>();
		t2.setType(2);
		final Integer type3 = t2.getType();
	}
}

改成这样不也可以吗?

public class TestO<Serializable> {

	private Serializable type;

	public void setType(final Serializable type) {
		this.type = type;
	}

	public Serializable getType() {
		return type;
	}

	public static void main(final String[] args) {
		final TestO<String> t1 = new TestO<String>();
		t1.setType("d");
		final String type2 = t1.getType();

		final TestO<Integer> t2 = new TestO<Integer>();
		t2.setType(2);
		final Integer type3 = t2.getType();
	}
}

一看没啥问题,泛型功能也基本实现了。但是实际上这里参数并没有限定为java.io.Serializable类型的,下面的那个代码和

public class TestO<T> 没啥区别。就是任意类型了。

所以,泛型中要限定参数是某种类型的范围内,只能用<T extends Serializable>这种写法


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值