泛型(Java)

1.泛型:

将数据类型作为参数进行传递。(传递的数据类型必须是引用数据类型)

本质是参数化类型。

**泛型集合:**可以约束集合内的元素类型

典型泛型集合ArrayList<E>、HashMap<K,V>

<E>、<K,V>表示该泛型集合中的元素类型泛型集合中的数据不再转换为Object。

2.泛型接口

泛型接口:

在接口定义时使用一个或多个类型参数(通常用尖括号<>括起来),这些类型参数可以用于接口的方法签名中,以提供更强的类型安全性和灵活性。

例:

当我们对商品类(Goods)和用户类(User)进行增删改查操作,我们需要建立单独Server类来实现这些功能,这样会导致我们建的项目比较多,因此我们将这些功能写在一个接口中,在创建各自的业务类实现该接口。

Server接口:

UserServer类实现接口:

GoodsServer类实现接口:

3.泛型类

泛型类:

指在类的定义中使用一个或多个类型参数(通常用尖括号<>括起来),这些类型参数可以用于类的成员变量、构造函数和方法中。通过这种方式,泛型类可以处理不同类型的数据,而无需为每种数据类型创建单独的类。

例:

java 复制代码
public class Student<K,V> {
    public K key;
    public V value;
    
    public void set(K k,V v){
        this.key = k;
        this.value = v;
    }
}

public class Test {
    public static void main(String[] args) {
        Student<String,Integer> s = new Student();
        //通过new对象来指定key和value的数据类型
    }
}

4.泛型方法

泛型方法:

指在方法的定义中使用一个或多个类型参数(通常用尖括号<>括起来),这些类型参数可以用于方法的返回值类型和参数列表中。

java 复制代码
public <T> void checked(T t){
        System.out.println(t+"类型");
}

s.checked("String");//调用checked方法,参数填什么类型,方法的参数类型就是什么类型

5.<? extends T>和<? super T>

<? extends T>:

必须是T类或是子类,限制add功能,但可以赋值给list。

<? super T>:

=当前类和父类,add当前类及其子类,限制get功能,get调用返回Object。

List<? extends T> list1 限制了 add 功能,是因为编译器无法确定列表中的实际元素类型,并且为了确保类型安全,它禁止向此类列表添加任何元素(除了 null)。若要添加可向list添加值,再将list赋给list1。

例:

​​​​​​​

List<? extends T>限制类型和add方法.

​​​​​​​

List<? extends T>限制类型和get方法(但返回是Object类型)。

​​​​​​​ ​​​​​​​

相关推荐
Theodore_10223 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
冰帝海岸4 小时前
01-spring security认证笔记
java·笔记·spring
世间万物皆对象4 小时前
Spring Boot核心概念:日志管理
java·spring boot·单元测试
没书读了5 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
小二·5 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic5 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
懒洋洋大魔王5 小时前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康5 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神6 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
qq_327342736 小时前
Java实现离线身份证号码OCR识别
java·开发语言