这就是我的代码
public interface Initializer<A, B> {
public B init(A input);
}
public abstract class AbstractInitializer<A, B> implements Initializer<A, B> {
private B output;
@Override
public final B init(A input) {
if (output != null)
return output;
return initialize(input);
}
protected abstract B initialize(A input);
}
public class MemoryInitializer<Map, Map> extends AbstractInitializer<Map, Map> {
@Override
protected Map initialize(Map input) {
// TODO Auto-generated method stub
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
最后的具体实现,我希望输入在初始化后映射和输出为映射,抛出编译器错误,表示"重复类型参数映射".我错过了什么?
当您想在类中允许泛型时使用此方法
MemoryInitializer<Map, Map>
Run Code Online (Sandbox Code Playgroud)
更清楚一点,如果你使用过
MyClass<T, T>
Run Code Online (Sandbox Code Playgroud)
它会抛出同样的错误.
您必须在类签名中为泛型使用不同的名称
MyClass<T, U>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |