温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java泛型方法如何写

发布时间:2026-09-30 18:45:38 来源:亿速云 阅读:89 作者:小樊 栏目:编程语言

在 Java 中,泛型方法是指在方法上单独声明泛型,而不依赖类是否是泛型类。下面从基础到常见写法给你说明。


一、基本语法

修饰符 <泛型参数> 返回值类型 方法名(参数列表) {
    // 方法体
}

关键点:

  • <T> 写在返回值前面
  • 泛型参数可以是多个:<T, U>
  • 泛型只在当前方法内有效

二、最简单的泛型方法示例

public class GenericMethodDemo {

    // 泛型方法
    public static <T> void print(T value) {
        System.out.println(value);
    }

    public static void main(String[] args) {
        print("Hello");
        print(123);
        print(3.14);
    }
}

✅ 编译器会根据实参自动推断 T


三、带返回值的泛型方法

public static <T> T getFirst(T[] array) {
    return array[0];
}

使用:

String[] strs = {"a", "b"};
String s = getFirst(strs);

四、多个泛型参数

public static <K, V> void printPair(K key, V value) {
    System.out.println(key + " = " + value);
}

五、泛型方法 + 泛型边界(常用)

1️⃣ 上界(extends)

public static <T extends Number> double toDouble(T num) {
    return num.doubleValue();
}

✅ 只能传 Number 及其子类


2️⃣ 多个边界

public static <T extends Number & Comparable<T>> T max(T a, T b) {
    return a.compareTo(b) > 0 ? a : b;
}

六、泛型方法与泛型类的区别

泛型类

class Box<T> {
    T value;
}

泛型方法(不依赖类)

class Util {
    public static <T> T get(T t) {
        return t;
    }
}

✅ 即使类不是泛型类,也可以有泛型方法


七、常见使用场景

✅ 工具类(如 Collections)

public static <T> List<T> singletonList(T o)

✅ 返回值类型随参数变化
✅ 提高代码复用和类型安全


八、注意事项

❌ 不能 new T()
❌ 不能 T.class
❌ 静态方法不能使用类的泛型(但可以用自己的泛型)


如果你有具体业务场景(比如:返回集合、排序、工厂方法),我可以帮你写更合适的泛型方法示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手