【发布时间】:2010-10-29 17:22:33
【问题描述】:
给定:
public interface PrimaryKey<Key extends Comparable> {
Key getKey();
}
和
public class PrimaryKeyComparator implements Comparator<PrimaryKey> {
public int compare(PrimaryKey first, PrimaryKey second) {
return first.getKey().compareTo(second.getKey());
}
}
这种组合有效,但会发出有关原始类型的警告。我尝试了各种添加类型参数的方法,但我尝试的每种组合都会破坏代码。
【问题讨论】:
-
使用
Key和TKey作为通用占位符是一种非常容易混淆阅读您代码的人的方法。 Java 使用E、T、K和V作为占位符名称是有原因的。 -
完全同意 R. Bemrose 的观点。
Key看起来像一个类或接口的名称。
标签: java generics comparator