温馨提示×

温馨提示×

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

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

Java泛型类中的泛型类型参数化接口

发布时间:2024-10-24 15:54:46 来源:亿速云 阅读:79 作者:小樊 栏目:编程语言

在Java中,泛型类可以包含泛型类型参数,这些参数可以在类的方法和属性中使用。当泛型类实现一个接口时,它可以为其泛型类型参数指定具体的类型。这种类型参数化接口的用法可以提高代码的重用性和类型安全。

以下是一个使用泛型类型参数化接口的示例:

// 定义一个泛型接口
interface Repository<T> {
    T find();
}

// 定义一个泛型类,实现上述接口,并为泛型类型参数T指定具体类型String
class StringRepository implements Repository<String> {
    private List<String> items;

    public StringRepository(List<String> items) {
        this.items = items;
    }

    @Override
    public String find() {
        if (items.isEmpty()) {
            return null;
        }
        return items.get(0);
    }
}

// 定义一个泛型类,实现上述接口,并为泛型类型参数T指定具体类型Integer
class IntegerRepository implements Repository<Integer> {
    private List<Integer> items;

    public IntegerRepository(List<Integer> items) {
        this.items = items;
    }

    @Override
    public Integer find() {
        if (items.isEmpty()) {
            return null;
        }
        return items.get(0);
    }
}

public class Main {
    public static void main(String[] args) {
        // 使用StringRepository
        Repository<String> stringRepo = new StringRepository(Arrays.asList("Hello", "World"));
        System.out.println(stringRepo.find()); // 输出:Hello

        // 使用IntegerRepository
        Repository<Integer> integerRepo = new IntegerRepository(Arrays.asList(1, 2, 3));
        System.out.println(integerRepo.find()); // 输出:1
    }
}

在这个示例中,我们定义了一个名为Repository的泛型接口,它有一个类型参数T。然后,我们创建了两个实现了该接口的泛型类:StringRepositoryIntegerRepository。在这两个类中,我们分别为泛型类型参数T指定了具体类型StringInteger。这样,我们就可以根据不同的需求创建不同类型的Repository实例,同时保持类型安全。

向AI问一下细节

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

AI