我想为这两个类创建一个通用接口(interface),但我不确定如何以正确的方式指定泛型。
public class ThingA implements Thing {
public ThingA createCopy(ThingA original);
}
public class ThingB implements Thing {
public ThingB createCopy(ThingB original);
}
我试过了。
public interface Thing<V extends Thing<V>> {
public V createCopy(V original);
}
但我仍然可以做这样的事情,这是不应该被允许的。
public class ThingB implements Thing<ThingA> {
public ThingA createCopy(ThingA original);
}
最佳答案
没有 this
关键字泛型(也没有方法参数和返回值声明),因此您无法完全按照自己的意愿行事。
换句话说,接口(interface)将允许确保类中的所有方法使用一致的类型,但不能引用类类型本身。
关于java - 创建仅限于自己类的通用接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18443418/