泛型总结
Posted java-seeker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了泛型总结相关的知识,希望对你有一定的参考价值。
为什么要使用泛型?
-不用强制类型转换
-避免运行时异常的安全隐患
-集合中定义泛型时,前后泛型必须一致,不允许出现泛型不同的情况
泛型作为方法参数
-public void sellerGoods(List<? extends Goods> goods) ==>表示泛型参数类型可以是Goods类型和它的子类 ,extends后面也可以跟接口
-public void sellGoods(List<? super Goods> goods) ==>super表示超类的引用,这个里面表示泛型参数可以是Goods以及Goods的超类
*自定义泛型类/方法
一、单参数泛型
public class NumGeneric<T> {
private T num;
public T getNum() {
return num;
}
public void setNum(T num) {
this.num = num;
}
public static void main(String[] args) {
NumGeneric<Integer> numGeneric = new NumGeneric<>();
numGeneric.setNum(10);
System.out.println("Integer: " + numGeneric.getNum());
NumGeneric<Float> floatNumGeneric = new NumGeneric<>();
floatNumGeneric.setNum(5.0f);
System.out.println("Float: " + floatNumGeneric.getNum());
}
}
二丶双参数泛型
public class TwoNumGeneric<T,X> {
private T num1;
private X num2;
public void genNum(T num1,X num2) {
this.num1 = num1;
this.num2 = num2;
}
public T getNum1() {
return num1;
}
public void setNum1(T num1) {
this.num1 = num1;
}
public X getNum2() {
return num2;
}
public void setNum2(X num2) {
this.num2 = num2;
}
public static void main(String[] args) {
TwoNumGeneric<Integer,Float> twoNumGeneric = new TwoNumGeneric<>();
twoNumGeneric.genNum(10,5.0f);
System.out.println("num1 = " + twoNumGeneric.getNum1());
System.out.println("num2 = " + twoNumGeneric.getNum2());
}
}
以上是关于泛型总结的主要内容,如果未能解决你的问题,请参考以下文章