【Java基础】泛型记录概要

本文介绍了泛型的概念及其在容器类创建中的作用,并详细解释了泛型接口、泛型方法及元组的使用方法。此外,还探讨了元组在解决单一方法返回多个对象问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

泛型记录概要


泛型出现重要原因之一:创造容器类

泛型主要目的之一:指定容器持有什么类型的对象,保证编译的正确性

泛型简单实例

class GenericsClass<T>{
  private T property;
  public GenericsClass(T property){}
}

元组(tuple)

基本概念

又称数据传送对象或者信使。将一组对象直接打包存储于其中的一个单一对象,只允许往这个对象读取其中元素,但是不允许向其中存放新的对象

目的

解决仅一次方法调用返回多个对象

特性

  • 具有任意长度
  • 存在不同类型的对象

简单二维元组

class TwoTuple<L,R>{
   public final L left;
   public final R right;
   public TwoTuple(L left,R right){
         this.left = left;
         this.right = right;
   }
   public String toString(){
       return "(" + left + "," + right + ")";
   }
}

通过继承机制创建长度更长的元组

class ThreeTuple<L,M,R> extends TwoTuple<L,R>{
   public final M middle;
   public TwoTuple(L left,M middle,R right){
         super(left,right);
         this.middle = middle;
   }
   public String toString(){
       return "(" + left + "," + middle + "," + right + ")";
   }
}

使用元组

static TwoTuple<String,Object> getTuple(){
   return new TwoTuple<String,Object>("key","value");
}

public static void main(String[] args) {
   TwoTuple<String,Object> tuple = getTuple();
   System.out.println(tuple);       
}

泛型接口

生成器(Generator)就是典型的泛型接口应用,用来负责创建对象

生成器(Generator)和工厂模式(FactoryPattern)都是负责创建对象的,两者的区别在于前者不需要传递任何参数信息,后者则需要。

基本类型无法作为类型参数。Java提供的自动打包/拆箱机制转换

泛型方法

泛型方法可以独立于类发生变化

Class GenericClass{
      public <T> void genericMethod(T x){
           //x.getClass().getName()
      }
}

类型参数推断:使用泛型方法不需要指明参数类型,编译器会找出具体类型

杠杆利用类型参数推断

new HashMap<Entity,List<? extends SuperClass>>()

<K,V> Map<K,V>

<T> List<T>

类型参数推断避免了重复的泛型参数列表

泛型用于匿名内部类

泛型的好处之一是简单而安全的创建复杂模型

在泛型内部,无法获得任何有关泛型参数类型的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值