Java中的泛型

本文介绍了Java中的泛型,包括泛型类、接口、函数的定义与使用,以及泛型数组和通配符的概念。泛型提高了代码的复用性和安全性,允许我们在不指定具体类型的情况下编写通用代码。通过设定通配符的上限和下限,可以更精确地控制泛型类型的范围。
摘要由CSDN通过智能技术生成

前言

在日常的开发中,我们会看到别人的框架很多地方会使用到泛型,泛型是 Java SE 1.5 的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。泛型的类型参数只能是类类型(包括自定义类),不能是简单类型

泛型类定义及使用

使用泛型有什么好处呢?首先我们先看一个例子,假设我们有两个类

public class StringClass {
   

    private String x ;    
    private String y ;
    
	// ......省略get/set
}


public class IntClass {
   
    private int x ;
    private int y ;

    // ......省略get/set
}

他们除了变量类型不一样,一个是 String 一个是 int 以外,其它并没有什么区别!那我们能不能合并成一个呢?通过泛型就可以解决,首先看一下泛型的类是怎么定义的

public class ObjClass<T> {
   

    private T x ;
    private T y ;

    // ......省略get/set
}

泛型类定义及使用

  • 首先需要定义泛型类:ObjClass 即在类名后面加一个尖括号,括号里是一个大写字母。这里写的是 T,其实这个字母可以是任何大写字母,无论使用哪个字母,意义都是相同的
  • 在类中使用泛型:这个 T 表示派生自 Object 类的任何类,比如 String,Integer,Double等 等。这里要注意的是,T 一定是派生于 Object 类的
  • 泛型类的使用
public static void main(String[] args) {
   

	ObjClass<String> stringClass = new ObjClass<>();
    stringClass.setX("haha");

    ObjClass<Integer> intClass = new ObjClass<Integer>();
    intClass.setX(100);
}

泛型类的构造器则需要在类名后添加上一对尖括号,中间写上要传入的类型。尖括号中,你传进去的是什么,T 就代表什么类型。这就是泛型的最大作用,我们只需要考虑逻辑实现,就能拿给各种类来用

泛型变量定义

  • 多泛型变量定义:我们不止可以在类中设置一个泛型变量 T,还可以声明多个泛型变量,写法如下
public class ObjClass<T, U> 

如果还有多个,依然使用逗号分隔开即可,则我们前面定义的泛型类就会变成下面这样

public class ObjClass<T,U> {
   

    <
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值