我在Java中遇到泛型类的问题。 我写这个简单的代码试图理解,但我收到这个错误:
GenericoT.java:12: error: bad operand types for binary operator '+'
return x + y + num;
^
first type: T
second type: T
where T is a type-variable:
T extends Object declared in class GenericoT
GenericoT.java:25: error: bad operand types for binary operator '>'
if(this.x > that.x)
^
first type: T
second type: Object
where T is a type-variable:
T extends Object declared in class GenericoT
2 errors
我的代码:
public class GenericoT<T> implements Comparable<GenericoT> {
private T x;
private T y;
public GenericoT(T x, T y){
this.x = x;
this.y = y;
}
public T sumNum(T num){
return x + y + num;
}
public T getX(){
return x;
}
public String toString(){
return "[" + x + ", " + y + "]";
}
public int compareTo(GenericoT that){
if(this.x > that.x)
return 1;
else return 0;
}
}
为什么我不能将x + y +另外一个数加起来? 我在某处读到如果我要实现Comparable接口,我必须重写方法compareTo()。但这种方法也给我带来了错误。
答案 0 :(得分:0)
我认为因为x和y的类型是T,它是一个对象,你不能用一个数字求和一个对象..如果我错了你可以纠正我;)
答案 1 :(得分:0)
Java无法超载+,您需要在scala中执行此操作。