【问题标题】:Integer type not working as expected (Java)整数类型未按预期工作(Java)
【发布时间】:2017-10-04 04:29:06
【问题描述】:

我正在编写我的第一个处理 Java 中泛型和标准 OOP 原则的程序,但是在处理 Integer 类型时遇到了一些问题。

我注意到整数应该有一个名为 compareTo(Integer anotherInteger) 的方法,以便像整数一样比较它们。

但是,当我尝试在我的程序中实现此方法时,我遇到了问题。

错误找不到符号 符号:方法 compareTo(Integer) 位置:整数类型的变量 x 其中 Integer 是一个类型变量:Integer extends Object 在 BinarySearchTree 中声明

本质上,我有 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;
                    }
            }
    }

这给出了相同的错误,表示整数类型变量 z.getX() 没有方法 .compareTo(Integer)。

【问题讨论】:

  • 能否提供treeBuilder.java的源代码?
  • 贴出相关代码
  • 您不能指望我们帮助您解决您只提供错误消息的错误......但没有提供代码。
  • 请添加文本内容作为文本,而不是图像。如果文本在图片中,Google 无法将其编入索引。
  • 对不起——源代码可以在这里找到:bitbucket.org/byrnesj1/csc130/src/…。相关文件为 BinarySearchTree.java 和 BinaryNode.java

标签: java generics integer


【解决方案1】:

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

只需删除两个类中的类型参数,即

class IntgS { ... }

【讨论】:

  • 感谢亨利的指导。您可以通过任何方式进一步解释阴影与我上面提供的代码片段的关系吗?
猜你喜欢
  • 2012-09-28
  • 2017-02-26
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2023-03-28
相关资源
最近更新 更多