泛型的定义与使用

泛型定义

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

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等方法
}
相关推荐
雨中飘荡的记忆17 小时前
保证金系统入门到实战
java·后端
Nyarlathotep011317 小时前
Java内存模型
java
暮色妖娆丶21 小时前
不过是吃了几年互联网红利罢了,我高估了自己
java·后端·面试
NE_STOP1 天前
MyBatis-参数处理与查询结果映射
java
狂奔小菜鸡1 天前
Day40 | Java中的ReadWriteLock读写锁
java·后端·java ee
SimonKing1 天前
JetBrains 用户狂喜!这个 AI 插件让 IDE 原地进化成「智能编码助手」
java·后端·程序员
狂奔小菜鸡1 天前
Day39 | Java中更灵活的锁ReentrantLock
java·后端·java ee
NE_STOP2 天前
MyBatis-配置文件解读及MyBatis为何不用编写Mapper接口的实现类
java
后端AI实验室2 天前
用AI写代码,我差点把漏洞发上线:血泪总结的10个教训
java·ai