码迷,mamicode.com
首页 > 其他好文 > 详细

泛型总结

时间:2019-03-17 10:41:16      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:情况   static   运行   运行时   自定义   int   span   类型   turn   

为什么要使用泛型?

  -不用强制类型转换

  -避免运行时异常的安全隐患

  -集合中定义泛型时,前后泛型必须一致,不允许出现泛型不同的情况

泛型作为方法参数

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

 

泛型总结

标签:情况   static   运行   运行时   自定义   int   span   类型   turn   

原文地址:https://www.cnblogs.com/java-seeker/p/10545673.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!