为什么我不能在 if 语句内强制转换对象?

2023-12-19

我在这里没有看到这个确切的问题,这让我感到惊讶。

以下内容将无法编译:

public int compareTo( Object o )
{
    if ( this.order < ((Category o).order) )
    {
      return -1;
    }
    else if ( this.order > ((Category o).order) ) 
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

而更改此设置以强制转换对象并将其引用存储在条件语句之外的新对象中可以解决此问题:

Category cat = ( Category )o;
if ( this.order < cat.order )
// Etc...

我的问题是,为什么 Java 不允许这种行为? (特别是 Java 5)

编辑:啊哈!谢谢你们。该死的现代 IDE 给出了模糊的错误消息。我开始对它们打折,但这一次对我没有任何好处。 (Netbeans 警告我缺少括号和分号......)


这里的问题是你的语法不正确。它应该是

public int compareTo( Object o )
{
    if ( this.order < ((Category) o).order )
    {
      return -1;
    }
    else if ( this.order > ((Category) o).order ) 
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我不能在 if 语句内强制转换对象? 的相关文章

随机推荐

  • 如何从闭包表中以 HTML 形式显示树结构

    我在 MySQL 中存储一些分层数据 由于各种原因 我决定使用闭包表 而不是嵌套集 邻接表等 到目前为止 它对我来说效果很好 但现在我正在尝试弄清楚如何在 HTML 中实际显示这棵树 即使用正确的缩进 举个例子 假设我有一棵像这样的树 Fo
  • UnobservedTaskException - 任务从哪里来

    在我的 MVC 应用程序中 我有时会遇到如下异常 System Net WebException The request was aborted The request was canceled at System Net HttpWebR
  • 在主干中获取 /collection/id 而不加载整个集合

    有没有办法加载 Backbone 集合的单个实体 从服务器 Backbone Collection extend url rest product 下面的代码可以加载整个集合collection fetch 但如何加载单个模型呢 Backb
  • 当前线程方法java

    所以我正在尝试为我正在制作的游戏使用线程 我是very刚接触这个主题 所以我可能理解不正确 我的问题是 currentThread 方法在 java API 的 Thread 类中如何工作 API 说 返回对当前正在执行的线程对象的引用 但
  • T-SQL 算术溢出:哪一列?

    在MS SQL Server 2005中 当在INSERT期间遇到 将数字转换为数字类型的算术溢出错误 时 是否可以发现哪一列的输入值导致了错误 似乎有许多类似的转换错误 但没有报告哪一列引发了问题 这使得在大型查询中修复错误变得相当困难
  • IMPORTDATA 出现很多错误,因为我正在尝试加载许多单元格以获取股票报价

    我有一张包含 220 个 导入数据 功能的 Google 表格 其中每个功能都从网站上提取股票报价 功能很简单 importdata http
  • 在设置大量计时器或使用计划任务队列之间寻找解决方案

    我正在构建一项服务 游戏 其中一组用户将在一个房间中 它将在一定的持续时间 例如 30 秒 内通过每个用户做出选择 如果用户在该持续时间内没有做出选择 服务将自动为该用户生成一个选择 如果在持续时间结束之前做出选择 那么下一个用户就起来了
  • 如何阅读 VS Code 中的发行说明

    我今天重新启动了 VS Code 它已更新 当它再次打开时 我看到一个带有发行说明的选项卡 几分钟后决定打开我的项目以查看操作中的更改 然而 当我打开该项目时 发行说明选项卡已关闭 现在我找不到在 VS Code 中专门访问它的方法 有没有
  • 如何在delphi中一次将不同字体格式的文本绘制到画布上?

    我一直在使用DrawText满足我所有的 矩形文本 输出需求 但是我没有找到一种绘制字符串的方法 例如 将每个其他单词加粗或使用不同的颜色 或者更糟糕的是 为所述随机选择的单词使用不同的背景 据我所知 可能没有一个程序可以做到这一点 我可能
  • Android Spring Jackson 映射:NoClassDefFoundError

    我试图让我的 Android 应用程序作为 REST 客户端运行 基本上我遵循了这个例子 https github com SpringSource spring android samples tree master spring and
  • 使用概念是否允许在成员函数上使用 decltype

    我来到know https stackoverflow com a 74024419一个班级的X具有名为的成员函数func c 标准不允许我们写decltype X func 因此我预计下面给出的程序会产生一个错误 类似于invalid u
  • 如何在 mac 中使用 Exiftool 添加 GPS 纬度和经度(如何在 jpeg 中编辑元数据)

    我有一堆从 FLIR 相机获得的 jpeg 图像 除了这些图像之外 我还收集了 GPS 坐标 现在我正在尝试将 GPS 纬度和经度获取到图像的元数据中 我用 R 编程语言编写了一个程序 用于查找每个图像相对于时间的 GPS 位置 只要 GP
  • 像 jQuery 插件一样使用 GWT 小部件?

    我可以像 jQuery 插件一样使用 Google GWT 小部件吗 例如 Gwt a css selector mywidget some prefs 也许你正在寻找类似的东西GQuery http code google com p g
  • OpenCV 轮廓矩?

    什么是轮廓矩 有人可以用简单的非数学术语解释这一点吗 可能有一个例子吗 官方的解释是 对轮廓中所有像素进行积分 我不知道什么整合 轮廓矩可以用来做什么 黑色 0 白色 1 的黑白图像的 0 度矩 这只是像素的总和 即白色像素的数量 x 轴和
  • 为什么 C# 中的堆栈大小正好是 1 MB?

    如今的 PC 拥有大量物理 RAM 但 C 的堆栈大小对于 32 位进程仅为 1 MB 对于 64 位进程仅为 4 MB C 中的堆栈容量 https stackoverflow com questions 823724 stack cap
  • 在 Android Widget 上处理多个按钮点击

    I 看到这个话题 https stackoverflow com questions 2082998 how to implement a button on an android widget并实施IntentService正如所描述的
  • 持久 stty 设置?

    目前 我可以通过执行禁用终端输出挂起 恢复 功能 CTRL S和CTRL Q废话 stty ixon 不幸的是 这不是永久性的 我需要设置这个选项每次我发射xterm 是否有一个可以编辑的文件可以记住我的设置并在重新启动和重新启动时保持永久
  • 播放动画一次而不是循环三个.js

    我已将搅拌机 JSON 动画导出到 THREE js 中 一切正常 但我只想播放动画一次并停止而不是循环播放动画 老问题 但如果有人需要它 解决方案是设置animation setLoop THREE LoopOnce let objLoa
  • 在 bash 中生成虚拟文件

    我想在 bash 中生成虚拟文件 内容并不重要 如果是随机的那就太好了 但所有相同的字节也是可以接受的 我的第一次尝试是以下命令 rm dummy zip touch dummy zip x 0 while x lt 100000 do e
  • 为什么我不能在 if 语句内强制转换对象?

    我在这里没有看到这个确切的问题 这让我感到惊讶 以下内容将无法编译 public int compareTo Object o if this order lt Category o order return 1 else if this