类型参数FooEntity隐藏了类型FooEntity

时间:2012-03-16 05:51:23

标签: java generics

public interface IFoo<TKey, FooEntity<TValue>> {
  // stuff
}

我收到此错误:
类型参数FooEntity隐藏了类型FooEntity

public class FooEntity<T> {

    private T foo;


}

我该如何解决这个问题?

我希望能够在其他地方实现IFoo接口。

2 个答案:

答案 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>>();