我正在编写我的第一个在Java中处理泛型和标准OOP原则的程序,但是在处理Integer类型时我遇到了一些问题。
我注意到Integers应该有一个名为compareTo(Integer anotherInteger)的方法,以便像你想要的那样比较它们。
然而,当我尝试在我的程序中实现此方法时,我遇到了一个问题。
错误找不到符号 符号:方法compareTo(整数) location:Integer类型的变量x 其中Integer是一个类型变量:Integer扩展了BinarySearchTree中声明的Object
基本上,我有x.comporeTo(y)其中x& y的类型为Integer,但找不到类型为Integer(x)的变量的compareTo方法。不知道如何解决这个问题,我们将不胜感激。
由于
编辑:我在下面提供了一个小例子来突出我的问题。我相信我正在影响Integer,但我不知道如何绕过这样做,或者如何解决问题,
public class IntgS<Integer>
{
Intg<Integer> z = new Intg(3);
Intg<Integer> y = new Intg(2);
int w = (z.getX()).compareTo(y.getX());
public class Intg<Integer>
{
private Integer x;
public Intg(Integer x)
{
this.x = x;
}
public Integer getX()
{
return x;
}
}
}
这给出了相同的错误,表示Integer类型变量z.getX()没有方法.compareTo(Integer)。
答案 0 :(得分:6)
根据错误消息BinarySearchTree
有一个名为Integer
的类型参数,它会隐藏标准类型java.lang.Integer
。