全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-10 6 分钟 ✍️ juanwangdev

泛型接口

泛型接口在接口名后声明类型参数,实现时指定具体类型或保留泛型。

泛型接口定义

Java
// 泛型接口
public interface Generator<T> {
    T generate();
}

实现方式一:指定具体类型

Java
// 实现时指定具体类型
public class StringGenerator implements Generator<String> {
    @Override
    public String generate() {
        return "Hello";
    }
}

public class IntegerGenerator implements Generator<Integer> {
    @Override
    public Integer generate() {
        return 100;
    }
}

实现方式二:保留泛型

Java
// 实现时保留泛型参数
public class GenericGenerator<T> implements Generator<T> {
    @Override
    public T generate() {
        return null;  // 具体实现
    }
}

// 使用时指定类型
GenericGenerator<String> gen = new GenericGenerator<>();
String result = gen.generate();

多类型参数接口

Java
public interface Converter<S, T> {
    T convert(S source);
}

// 指定具体类型
public class StringToIntConverter implements Converter<String, Integer> {
    @Override
    public Integer convert(String source) {
        return Integer.parseInt(source);
    }
}

// 保留泛型
public class GenericConverter<S, T> implements Converter<S, T> {
    @Override
    public T convert(S source) {
        // 具体转换逻辑
        return null;
    }
}

常见泛型接口

Comparator

Java
// Comparator 是泛型接口
Comparator<String> comparator = (s1, s2) -> s1.compareTo(s2);

Comparator<Integer> intComparator = (i1, i2) -> i1 - i2;

Comparable

Java
// 类实现 Comparable 泛型接口
public class Person implements Comparable<Person> {
    private String name;
    private int age;

    @Override
    public int compareTo(Person other) {
        return this.age - other.age;
    }
}

Function(Java 8)

Java
// Function<T, R> 泛型接口
Function<String, Integer> parseInt = s -> Integer.parseInt(s);
Integer result = parseInt.apply("100");

// Predicate<T> 泛型接口
Predicate<Integer> isPositive = n -> n > 0;
boolean test = isPositive.test(5);  // true

泛型接口使用场景

场景说明
生成器Generator 生成特定类型对象
转换器Converter<S, T> 类型转换
比较器Comparator 比较特定类型
函数式接口Function<T, R>、Predicate 等

要点总结

  • 泛型接口在接口名后声明类型参数
  • 实现时可指定具体类型或保留泛型
  • 指定具体类型:实现类不再是泛型类
  • 保留泛型:实现类仍是泛型类
  • 常见泛型接口:Comparator、Comparable、Function
  • Java 8 函数式接口大量使用泛型

📝 发现内容有误?点击此处直接编辑

← 上一篇 泛型与继承
下一篇 → 泛型方法
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库