泛型总结

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());
  }
}

 

以上是关于泛型总结的主要内容,如果未能解决你的问题,请参考以下文章

Java基础总结三(泛型异常)

Java基础总结三(泛型异常)

Java泛型知识总结篇

Java泛型总结

泛型总结

(.NET高级课程笔记)泛型总结