泛型的定义与使用

泛型定义

泛型是在类、接口和方法级别上声明和使用,成员变量(实例变量)不能直接定义为泛型类型,然而,你可以在类中使用泛型类型参数,并在成员变量的类型中使用该泛型参数

1. 泛型类的定义

java 复制代码
public class Box<T> {
    private T value;

    public T getValue() {
        return value;
    }

    public void setValue(T value) {
        this.value = value;
    }
}

2. 泛型接口的定义

java 复制代码
public interface SomeInterface<T> {
    T doSomething();
}

3. 泛型方法的定义

java 复制代码
//定义例子1 <T>是定义,T是使用
public <T> T someGenericMethod(T item) { 
    // 实现方法逻辑
    return item;
}

public class Box {
//定义例子2
    public static  <T> void getValue(T pama1) {
        System.out.println("pama1 = " + pama1);
    }



    public static void main(String[] args) {
        String a ="111";
        Box.getValue(a);
        int b =11;
        Box.getValue(b);
    }
}

//例子3
public <T extends Comparable<T>> int compare(T obj1, T obj2) {
    return obj1.compareTo(obj2);
}

//例子4
public <E> void printArray(E[] array) {
    for (E element : array) {
        System.out.print(element + " ");
    }
    System.out.println();
}

4. 限定泛型的上界(使用 extends 关键字)

java 复制代码
public <T extends Number> void someMethod(T number) {
    // 方法逻辑
}

5. 多个泛型参数

java 复制代码
public class Pair<K, V> {
    private K key;
    private V value;

    // 构造函数、getter和setter等方法
}
相关推荐
code2cat12 小时前
Java工具篇之Maven:从pom.xml到测试通过的JAR
xml·java·maven
wuminyu18 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
txxzjmzlh18 小时前
SpringBoot 配置⽂件
java·spring boot·spring
小徐不徐说18 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ragnwang18 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
Wang's Blog19 小时前
Java 项目实战: 交友项目 - 搜索附近的功能概述和分析
java·开发语言·交友
骑着蜗牛撵大象32719 小时前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
独泪了无痕19 小时前
Hutool之LocalDateTimeUtil:让时间间隔操作如虎添翼
java
Dxy123931021620 小时前
JS DES 加密详解
开发语言·javascript·arcgis
充值内卷20 小时前
我给桌面加了个鱼缸:C++ 写后端,WebView2 里养一座 Three.js 小岛
开发语言·javascript·c++