클래스 지정을 위해 bultin 유형의 언어를 사용할 수 없으므로 내 목록이 붙어 있습니다. 어쨌든, 여기 상황이다 : 그러나Java가 Generic에서 내 LinkedList를 허용하지 않는 이유는 무엇입니까?
public class CrazyStructure <T extends Comparable<? super T>> {
MyLinkedList<MyTree<T>> trees; //error: type parameter MyTree is not within its bound
}
:
public class CrazyStructure <T extends Comparable<? super T>> {
LinkedList<MyTree<T>> trees;
}
작품. MyTree는 Comparable 인터페이스를 구현하지만 MyLinkedList는 구현하지 않습니다. 그러나 Java의 LinkedList는 this에 따라이 중 하나를 구현하지 않습니다. 그래서 문제는 무엇이며 어떻게 고칠 수 있습니까?
MyLinkedList :
public class MyLinkedList<T extends Comparable<? super T>> {
private class Node<T> {
private Node<T> next;
private T data;
protected Node();
protected Node(final T value);
}
Node<T> firstNode;
public MyLinkedList();
public MyLinkedList(T value);
//calls node1.value.compareTo(node2.value)
private int compareElements(final Node<T> node1, final Node<T> node2);
public void insert(T value);
public void remove(T value);
}
으로 myTree :
public class LeftistTree<T extends Comparable<? super T>>
implements Comparable {
private class Node<T> {
private Node<T> left, right;
private T data;
private int dist;
protected Node();
protected Node(final T value);
}
private Node<T> root;
public LeftistTree();
public LeftistTree(final T value);
public Node getRoot();
//calls node1.value.compareTo(node2.value)
private int compareElements(final Node node1, final Node node2);
private Node<T> merge(Node node1, Node node2);
public void insert(final T value);
public T extractMin();
public int compareTo(final Object param);
}
'MyLinkedList' 정의를 볼 수 있습니까? – OscarRyz
MyLinkedList 및 MyTree 선언을 더 잘 보여줍니다. – bmargulies
서명 방법을 편집했습니다. 원하는 경우 나머지를 게시 할 수 있습니다. –