在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
。然后,我们创建了两个实现了该接口的泛型类:StringRepository
和IntegerRepository
。在这两个类中,我们分别为泛型类型参数T
指定了具体类型String
和Integer
。这样,我们就可以根据不同的需求创建不同类型的Repository
实例,同时保持类型安全。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。