泛型教程(二)---源类型
来源:互联网 发布:cet照片采集软件 编辑:程序博客网 时间:2024/06/14 04:20
源类型
源类型是一个名字,一个没有任何类型参数的泛型类或者接口的名字。比如说例子中的泛型类 Box
public class Box<T>{
public void set(T t) { /* ... */}
// ...
}
去创建一个Box<T>的参数化类型(parameterized type),你需要为类型参数(type parameter)T提供一个type argument:
Box<Integer> intBox = new Box<>();
如果type argument被省略了,你就创建了一个Box<T>的源类型:
Box rawBox = new Box()
所以,Box是泛型Box<T>的源类型,但是一个非泛型类或者接口不是一个源类型。
源类型已经被废弃了,因为在JDK 5.0之前,很多API的类都不是泛化的。为了向后兼容,把一个parameterized type 赋值给一个源类型是运允许的。比如:
Box<String> stringBox = new Box<>();
Box rawBox = stringBox; // OK
但是如果把一个源类型赋给一个parameterized type,你会得到警告:
Box rawBox = new Box(); // rawBox is a raw tpe of Box<T>
Box<Integer> intBox = rawBox; // Warning: unchecked conversion
如果你用源类型去调用一个已经泛化的方法(generic methods),这个泛化方法是在相对应的泛型中定义了,也会得到警告:
Box<String> stringBox = new Box<>();
Box rawBox = stringBox;
rawBox.set(8); //warning: unchecked invocation to set(T)
一句话,避免使用源类型
0 0
- 泛型教程(二)---源类型
- Redis教程(二)字符串(String)类型
- Redis教程(二)字符串(String)类型
- FlowChart.NET使用教程:创建自定义节点类型(二)
- ArcGIS教程:网络分析图层的类型(二)
- AIDL使用教程二(传递非默认类型数据)
- 泛型教程(四)---有界类型参数
- Java -- 泛型中的类型擦除机制介绍(二)
- PyCUDA教程(二):教程
- 掌握 Java 泛型类型(二)
- 引用类型(二)
- c#泛型学习(二)_C#教程
- c#泛型学习(二)_C#教程
- JSP教程(二)
- Draw2D教程(二)
- OGRE教程(二)
- JFreeChart教程(二)
- JSP教程(二)
- 网站设计之Flash简单动画入门介绍(一)字体闪烁及渐显
- 泛型教程(一)---基础知识
- H5安全性问题
- View总结-工作流程
- 练习八数码的一些体会
- 泛型教程(二)---源类型
- 泛型教程(三)---泛化方法(generic methods)
- 1508-张晨曦总结《2016年-11月-10日》【连续20天总结】
- HDU 4200 Bad Wiring 高斯消元 +枚举自由变元
- POJ 1562深搜判断连体油田个数
- 【Data Structures】 7. Simple Sorting—Bubble Sort, Selection Sort, and Insertion Sort
- java利用Jersey创建RESTful service
- Java多线程和并发基础面试问答
- JAVA实现带进度条的多文件上传