泛型初想

java中的泛型提供了在编译时期的类型检查,这让java语言更具健壮.
在泛型没有出来之前,也就是JDK1.5之前,往往使用的是Object这个根类来进行接口的声明.然后进行具体的类型转化.
更多的形式如下:
foo.setFoo(new Integer(5));
Integer i =(Integer)foo.getFoo();

而泛型的出现则省去了这一环节.典型的就是以一个参数如T 进行类型的申明.在实例与具体操作时进行类型的指定.如Foo<T>

当我们申明了:
Foo<Integer> foo1 = null;
Foo<Boolean> foo2 = null;
时,就不能
foo1 = new Foo<String>("");
foo2 = new Foo<String>("");
也就是foo1,foo2只能代表Integer和Boolean的Foo,因为我们已经知道了它的具体所属类型.
如果我们不知道它具体为何类型可以申明为
Foo<?> foo = null
这样我们就可以对foo任意实例了:
foo = new Foo<String>("");
foo = new Foo<Integer>(5);//autoboxing
当然我们也可以对这个未知类型进行限定:
Foo<? extends List> foo;
这样foo就只有匹配List的子类了.
同样也可以时行向上限定
Foo<? super ArrayList> foo
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值