这似乎不起作用(编译器提示 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);
}
关于java:接口(interface)和模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2387606/