public interface IFoo<TKey, FooEntity<TValue>> {
// stuff
}
我收到此错误:
类型参数FooEntity隐藏了类型FooEntity
public class FooEntity<T> {
private T foo;
}
我该如何解决这个问题?
我希望能够在其他地方实现IFoo接口。
答案 0 :(得分:4)
见:
public interface IFoo<TKey, FooEntity<TValue>> {
// stuff
}
您正在定义名为IFoo的接口。定义类型时,<
和>
之间的内容是类型参数。使用此IFoo接口时应提供实际类型,而不是在定义IFoo时提供。
你真的是这个意思吗?
public interface IFoo<TKey, TValue> {
void doSomething(TKey key, FooEntity<TValue> value);
}
和
public class MyFoo implements IFoo<String, Integer> {
@Override
public void doSomething(String key, FooEntity<Integer> value) {
// TODO: ....
}
}
答案 1 :(得分:0)
试一试......
class FooEntity<K> { }
interface IFoo<K,V> { }
class IFooImplElseWere<K,V> implements IFoo<K,V> { }
IFoo<String, FooEntity<String>> ifi = new IFooImplElseWere<String,FooEntity<String>>();