整数类型无法按预期工作(Java)

时间:2017-10-04 04:29:06

标签: java generics integer

我正在编写我的第一个在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)。

1 个答案:

答案 0 :(得分:6)

根据错误消息BinarySearchTree有一个名为Integer的类型参数,它会隐藏标准类型java.lang.Integer