小编Won*_*ano的帖子

使用标记接口来限制通用参数

我有一个 Foo 类,它可以处理某种类型的变量。我想将这种类型限制在我拥有的几个课程中。这些类已经实现但没有任何继承关系。编写一个空接口 Type,然后将“实现类型”添加到作为泛型参数 T 的可接受类型的所有类是否有意义。

这意味着你会得到这样的东西:

public class SuperFoo() {
    //Some code
}

public class Foo<T extends Fooable> extends SuperFoo {
    private T acceptedObject;
    private String name;

    public Foo(String name, T acceptedObject) {
        this.name = name;
        this.acceptedObject = acceptedObject;
        //Some code
    }
}

public interface Fooable {}

public class FooableClass1 implements Fooable {  //Objects of this class will be accepted as T
    public FooableClass1() {}
    //Some code
}

public class FooableClass2 implements Fooable { //Object of this class will …
Run Code Online (Sandbox Code Playgroud)

java generics interface

5
推荐指数
1
解决办法
1382
查看次数

标签 统计

generics ×1

interface ×1

java ×1