Java泛型
时间:2020-04-07 11:00:04
收藏:0
阅读:62
Java泛型
泛型的产生
- 最初的目的:希望类或方法能够具备最广泛的表达能力。
- 其他目的:为了创建容器类,例如List、Map等等,泛型可以起到指定容器持有对象的类型。(容器和数组都是储存对象的工具)
- 为什么Object被替代:因为在向下转型的过程中,如果父类对象不是子类对象的实例,就会出现ClassCastException异常(简单来说就是“没有当过医生的普通人不能变成医生,只有曾经是医生的普通人才可以当医生”),而编译器又不会报错,所以对程序编写造成了麻烦。
- 实现概念:参数化类型。类型变得像像普通参数一样可以被传入。
- 术语意思:适应于许多的类型。
- 注意事项:泛型的类型参数不能是基本类型(例如int),要使用Integer。
元组
- 概念:将一组对象打包存储与其中的一个单一对象,这个容器对象允许读取其中元素,但是不允许向其中存放新的对象。(该概念也被称为“信使”、“数据传送对象”)
- 作用:作为方法的返回值,能够让方法一次性返回多个对象。(当然我们能够不使用泛型就能够达到该目的,只需要每一次都创建一个新的类,但是这样过于麻烦,如果我们使用泛型,就可以一次性地解决问题)
//代码示例 这是一个典型的二维元组
public class TwoTuple<A, B> {
public final A first;
public final B second;
public TwoTuple(A first, B second) {
this.first = first;
this.second = second;
}
@Override
public String toString() {
return "TwoTuple [first=" + first + ", second=" + second + "]";
}
}
//代码示例 这是使用元组的代码
public class TupleTest {
public static TwoTuple<String,Double> speak(){
return new TwoTuple<String, Double>("1232", 1.23);
}
public static void main(String[] args) {
System.out.println(speak());
}
}
元组使用总结:元组定义好之后,将元组作为方法的返回值,该方法的return语句则可以返回该元组,元组中的对象就可以一次性被该方法返回。
如果我们需要使用更多维的元组,就利用Java的继承机制。下面看一个继承自二维元组的三维元组:
//代码示例
public class ThreeTuple<A, B, C> extends TwoTuple<A, B> {
public final C third;
public TwoTuple(A first, B second, C third) {
super(first,second);
this.third = third;
}
}
泛型接口
原文:https://www.cnblogs.com/hackerstd/p/12651721.html
评论(0)