所以我有一个界面
public interface Identity {
abstract void setKey(String key);
abstract String getKey();
}
我想用于插入排序功能
public static void InsertIdentity(Identity identity, ArrayList<? extends Identity> list) {
int i = 0;
Identity id;
while (i < list.size()) {
if ((id = list.get(i)).getKey().compareTo(identity.getKey()) < 0) {
i++;
}else{break;}
}
list.add(i, identity);
}
但显然我无法在ArrayList中添加标识 - ?扩展身份
我想知道是否有办法解决这个问题?
我知道Java有其他方法可以完成这项任务,但我希望这个功能能够正常工作。
答案 0 :(得分:4)
你可以制作method generic:
public static <T extends Identity> void InsertIdentity(T identity, ArrayList<T> list) {
//...
如果使用这种方法,您可能还需要使其他方法也是通用的。
答案 1 :(得分:3)
我建议如下:
public static <I extends Identity> void InsertIdentity(I identity, ArrayList<I> list)
答案 2 :(得分:2)
这可以使用,具体取决于您将如何使用InsertIdentity方法:
public static <T extends Identity> void InsertIdentity(T identity, ArrayList<T> list) {