Дано:Компаратор для универсального интерфейса без предупреждения
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' как имена заполнителей. – Powerlord
Абсолютно согласен с R. Bemrose. 'Key' выглядит как имя класса или интерфейса. – ColinD