Java基础——泛型

上一篇 / 下一篇  2015-02-03 08:15:18 / 个人分类:原创


基本类型无法作用泛型的类型参数使用。

泛型方法需要在返回值之前加“<T>”

Class.getTypeParameters()将返回一个TYPEVariable对象数组,表示有泛型声明所声明的类型参数。但只能得到占位符的标识符,在使用Java泛型时,任何具体的类型信息都被擦除了。
Java的擦除是为了满足兼容需求,允许泛型代码和非泛型代码共存。

对于在泛型中创建数组,推荐使用Array.newInstance()

边界:对象进入和离开发放的地点。泛型的所有动作都是在边界发生的——对传进来的值进行额外的编译期检查,并插入对传递出去的值的转型。

15.8擦除的补偿
使用“arg instanceof T”时失败,是因为类型信息已经被擦除了。
可以引用类型标签,转而使用动态的isInstance()。编译器将确保类型标签可以匹配泛型参数。

15.10通配符
1、<? extends 超类>
使用了这种形式的通配符后,如果某方法的参数是类型标签(T),那么此方法的参数就是“? extends 超类”,而使得无法向该方法传递任何类型的参数。
2、超类型通配符
<? super 子类>
------------super与extends-----------
extends:可用于的返回类型限定,不能用于参数类型限定。
super:可用于参数类型限定,不可用于返回类型限定。
带有super超类型限定的通配符可以向泛型对象写入;带有extends子类型限定的通配符可以从泛型对象读取。

3、无界通配符
<?> 它只做一种声明“我想用Java的泛型来编写代码,并不是要用原生类型,但是泛型参数可以持有任何类型”
4、允许一个参数可以说任何类型,同时为其他参数确定某种特定类型。

——15.10之后未进行

TAG:

 

评分:0

我来说两句

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 18269
  • 日志数: 25
  • 建立时间: 2014-11-10
  • 更新时间: 2015-03-12

RSS订阅

Open Toolbar