温馨提示×

温馨提示×

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

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

泛型接口怎么实现

发布时间:2026-07-15 12:42:04 来源:亿速云 阅读:93 作者:小樊 栏目:编程语言

在 Java 中,泛型接口就是带类型参数的接口。实现泛型接口主要有 两种方式
实现时指定具体类型
实现类继续保留泛型

下面用例子一步步说明。


一、定义泛型接口

public interface Repository<T> {
    void save(T t);
    T findById(int id);
}

T 是泛型参数,表示某种类型。


二、实现方式一:指定具体类型(最常用 ✅)

实现接口时直接指定泛型的具体类型。

示例:操作 User 实体

public class UserRepository implements Repository<User> {

    @Override
    public void save(User user) {
        System.out.println("保存用户:" + user);
    }

    @Override
    public User findById(int id) {
        return new User();
    }
}

✅ 优点:

  • 代码简单
  • 编译器能直接做类型检查
  • 实际开发中最常见

三、实现方式二:实现类继续带泛型(高级用法)

如果实现类还不确定具体类型,可以继续保留泛型。

public class GenericRepository<T> implements Repository<T> {

    @Override
    public void save(T t) {
        System.out.println("保存:" + t);
    }

    @Override
    public T findById(int id) {
        return null;
    }
}

使用时再指定类型:

Repository<String> repo = new GenericRepository<>();
repo.save("hello");

✅ 适合:

  • 通用组件
  • 框架、工具类

四、多个泛型参数

public interface Mapper<K, V> {
    V map(K key);
}

实现:

public class StringToIntMapper implements Mapper<String, Integer> {
    @Override
    public Integer map(String key) {
        return key.length();
    }
}

五、泛型接口 + 泛型方法(补充)

public interface Service<T> {
    <R> R convert(T t);
}

接口泛型 T ≠ 方法泛型 R,两者可以共存。


六、常见错误 ❌

1️⃣ 忘记指定泛型类型

class A implements Repository {} // ❌ 不推荐(使用原始类型)

2️⃣ 泛型不能用于静态方法

interface A<T> {
    static void test(T t) {} // ❌ 编译错误
}

七、总结一句话 ✅

泛型接口的实现方式取决于你是否已经确定具体类型

  • 确定了 → 直接指定类型
  • 不确定 → 实现类继续带泛型

如果你愿意,我也可以结合 List / Comparator / Spring 泛型接口 给你讲实际项目用法。

向AI问一下细节

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

AI