我想在java中使用泛型方法第一次。它不工作,而且在我看来,Java泛型并不意味着以这种方式使用 - 我需要实现一个通用接口,而不是使用泛型方法。请确认(或否认)该结论。在Java中使用泛型方法参数
这就是我想要做的事:
public <T> void updateItem(T item) {
String itemKey = item.getKey();
...
这给我的错误“的方法信息getKey()是未定义的类型T”。
寻找为什么这不起作用,我看到类型擦除“如果类型参数是无界的,则用泛界限或对象替换泛型中的所有类型参数”。
我可以'绑定'我的类型T的唯一方法是如果我为所有我打算使用的类型创建一个公共子类或接口,并且如果我这样做,那么我可以使用多态而不是泛型。
看起来你想使用一个接口,而不是泛型。 – svz 2013-04-04 17:06:27
T应该是什么?你可以使用'' –
Supericy
2013-04-04 17:06:27
我有这个想法(来自Python或C++),我不必指定T是什么。当使用类型调用T时,T将被类型检查。 – Tom 2013-04-04 17:07:45