incompatible types : java.lang.Object cannot be converted to T
public class binary_tree <T extends Comparable<T>> {
private Node head;
int size;
class Node <T>{
T data;
Node left;
Node right;
Node(T data) {
this.data = data;
right = null;
left = null;
}
}
public Node addTo(Node node,T data){
if(node == null){
return new Node(data);
}
if(data.compareTo(node.data) < 0){
node.left = addTo(node.left, data);
}else if (data.compareTo(node.data) > 0) {
node.right = addTo(node.right, data);
} else {
return data;
}
return data;
}
NetBeans выдает следующую ошибку

Я так понимаю это из-за того, что в Node и в binary_tree разные T. Как мне исправить эту ошибку?
Ответы (2 шт):
Автор решения: Антоша
→ Ссылка
Ну что-то типа... логика не очень ясна из Вашего примера
public class binary_tree <T extends Comparable<T>> {
private Node<T> head;
int size;
static class Node<T> {
T data;
Node<T> left;
Node<T> right;
Node(T data) {
this.data = data;
right = null;
left = null;
}
}
public void addTo(Node<T> node, T data) {
if (node == null) {
return;
}
Node<T> newNode = new Node<T>(data);
if (data.compareTo(node.data) < 0) {
node.left = newNode;
} else {
node.right = newNode;
}
}
}
Автор решения: hsz0r
→ Ссылка
public class binary_tree <T extends Comparable<T>> {
private Node<T> head;
int size;
class Node <T extends Comparable<T>> {
T data;
Node<T> left;
Node<T> right;
Node(T data) {
this.data = data;
right = null;
left = null;
}
}
private Node addTo(Node<T> node, T data) {
if (node == null) {
return new Node(data);
}
if (data.compareTo(node.data) < 0) {
node.left = addTo(node.left, data);
} else if (data.compareTo(node.data) > 0) {
node.right = addTo(node.right, data);
} else {
return node;
}
return node;
}
public void add(T data){
head = addTo(head, data);
}
}