这似乎不起作用(编译器抱怨Something
的getFoo()
方法未实现HasFoo
),而且我不知道为什么或如何解决它。
enum FooKey { BLOB1, DONUT, ... }
interface HasFoo
{
public Object getFoo(FooKey k);
}
class Something implements HasFoo
{
private Map<FooKey, Object> map;
@SuppressWarnings("unchecked")
@Override
<T> T getFoo(FooKey k)
{
return (T)map.get(k);
}
/* other stuff deleted */
}
我既需要界面,也希望能够做类似的事情
Something something = ...
Blob blob1 = something.getFoo(FooKey.BLOB1);
Donut donut = something.getFoo(FooKey.DONUT);
最佳答案
这不行吗?
interface HasFoo
{
public <T> T getFoo(FooKey k);
}