泛型的定义与使用

泛型定义

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

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等方法
}
相关推荐
martian6655 分钟前
麒麟系统下Tomcat部署Java Web程序(WAR包)及全链路问题排查指南
开发语言·tomcat·系统安全
ai.Neo5 分钟前
牛客网NC22012:判断闰年问题详解
开发语言·c++·算法
曼岛_11 分钟前
[Java实战]Spring Boot + Netty 实现 TCP 长连接客户端及 RESTful 请求转发(二十六)
java·spring boot·tcp/ip
好吃的肘子12 分钟前
ElasticSearch进阶
大数据·开发语言·分布式·算法·elasticsearch·kafka·jenkins
老友@16 分钟前
Spring Data Elasticsearch 中 ElasticsearchOperations 构建查询条件的详解
java·后端·spring·elasticsearch·operations
NaclarbCSDN17 分钟前
Java集合框架
java·开发语言·前端
xiaohanbao0922 分钟前
day26 Python 自定义函数
开发语言·python·学习·机器学习·信息可视化·numpy
jie1889457586625 分钟前
c++,windows,多线程编程详细介绍
开发语言·c++
破晓的历程25 分钟前
Qt file文件操作详解
开发语言·qt
蟹至之28 分钟前
万字解析:Java字符串
java·字符串·stringbuilder·string·stringbuffer