this
类类型。我需要这个来强制接口实现来实现两个方法,这些方法返回通用类的实现,this
类类型作为通用参数。
我们假设我有两个界面:Cover.java
和Adaptor.java
interface Cover<P extends Phone> {
P getPhone();
}
interface Adaptor<P extends Phone> {
P getPhone();
}
我想创建通用接口,鼓励它的实现将Cover
和Adaptor
作为通用参数返回
// <T> should reference to current Phone implementation
public interface Phone {
Cover<T> getCover();
Adaptor<T> getAdaptor();
}
因此我想要:
//correct
public class Iphone implements Phone {
Cover<Iphone> getCover(); // <- I want this to be compile-time controlled
Adaptor<Iphone> getAdaptor(); // <- I want this to be compile-time controlled
}
// compile-time exception
public class Samsung implements Phone {
Cover<Iphone> getCover(); // <- CTE
Adaptor<Iphone> getAdaptor(); // <- CTE
}
有没有办法在Java 7中实现这个目标?