温馨提示×

温馨提示×

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

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

泛型在接口中怎么用

发布时间:2026-09-30 19:49:39 来源:亿速云 阅读:83 作者:小樊 栏目:编程语言

在接口中使用泛型(Generics),可以让你在不指定具体类型的情况下定义接口,使接口更加通用、类型安全。下面用 Java 和 TypeScript 两种常见语言来说明(如果你用的是其他语言,也可以告诉我)。


一、Java 中接口使用泛型

1️⃣ 基本用法

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

实现接口时指定类型:

public class UserRepository implements Repository<User> {
    public void save(User item) { }
    public User findById(int id) { return null; }
}

2️⃣ 多个泛型参数

public interface Pair<K, V> {
    K getKey();
    V getValue();
}

3️⃣ 泛型限定(边界)

public interface ComparableService<T extends Comparable<T>> {
    int compare(T a, T b);
}

4️⃣ 泛型方法(接口中)

public interface Converter {
    <T> T convert(Object source, Class<T> targetType);
}

二、TypeScript 中接口使用泛型

1️⃣ 基本用法

interface Repository<T> {
  save(item: T): void;
  findById(id: number): T | null;
}

使用:

interface User {
  id: number;
  name: string;
}

const userRepo: Repository<User> = {
  save(user) {},
  findById(id) { return null; }
};

2️⃣ 多个泛型

interface Pair<K, V> {
  key: K;
  value: V;
}

3️⃣ 泛型约束

interface HasId {
  id: number;
}

interface Service<T extends HasId> {
  getById(id: number): T;
}

4️⃣ 默认泛型类型

interface Response<T = any> {
  data: T;
  code: number;
}

三、接口中使用泛型的好处

✅ 提高代码复用性
✅ 编译期/类型检查更安全
✅ 避免强制类型转换
✅ 更适合写通用框架或工具类


如果你是想问 某个具体语言(如 C# / Go / Kotlin / Rust) 或 某种使用场景(如 CRUD、回调、API 层),可以告诉我,我可以给你更针对性的示例。

向AI问一下细节

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

AI
助
手