我第一次尝试在 java 中使用泛型方法。它不起作用,在我看来,Java 泛型根本不应该以这种方式使用——我需要实现一个通用接口而不是使用泛型方法。请确认(或否认)该结论。
这就是我想要做的:
public <T> void updateItem( T item ) {
String itemKey = item.getKey();
...
这给了我错误“类型 T 的方法 getKey() 未定义”。
研究为什么这不起作用,我看到类型擦除“如果类型参数是无界的,则用它们的边界或 Object 替换泛型类型中的所有类型参数”。
我可以“绑定”我的类型 T 的唯一方法是,如果我为我计划使用的所有类型创建一个公共子类或接口,并且如果我这样做,那么我可以使用多态性而不是泛型。