无法解析方法 "compareTo(Friend)"

Cannot resolve method "compareTo(Friend)"

我正在创建一个 FriendList,它扩展了 ArrayList 并填充了一个 Friend 对象。但是,当我尝试访问 Friend 通常可用的方法时,编译器说它无法解析该方法 - 在本例中为 compareTo(Friend).

好友列表class:

public class FriendList<Friend> extends ArrayList<Friend> {

    private boolean isAdded;

    public FriendList() {
        isAdded = false;
    }

    public void alphabetAdd(Friend friend) {
        if (this.isEmpty()) {
            add(friend);
            return;
        }

        int index = 0;

        // add friends alphabetically
        while (!isAdded) {
            Friend f = this.get(index+1);
            if (f.compareTo(friend) < 0) {
                index++;
            } else {
                this.add(index, friend);
                isAdded = true;
            }
        }
    }
}

朋友class:

public class Friend implements Comparable<Friend> {

// constructors and other methods work fine - just need to see compareTo

//    @Override
    public int compareTo(@NonNull Friend o) {

        String name1 = getUserFirstName() + getUserLastName();
        Friend f;

        if (o instanceof Friend) {
            f = (Friend) o;

            String name2 = f.getUserFirstName() + f.getUserLastName();

            if (name1.compareTo(name2) < 0)
                return -1;
            else if (name1.compareTo(name2) > 0)
                return 1;

        }

        return 0;
    }
}

问题在 FriendList<Friend>。这被视为通用 class 的声明,如 FriendList<T>Friend 不是实际类型而是别名,这就是为什么只有 Object 中声明的方法可用。 将 class 的声明更改为 public class FriendList extends ArrayList<Friend>