让你自己的班级具有“可比性”

2023-11-27

我遵循了教程,但未能成功Country class Comparable for my BST.

Main:

BinarySearchTree A = new BinarySearchTree();
Country a = new Country("Romania", "Bucharest", 1112);
A.insert(a);

国家级:

public int compareTo(Object anotherCountry) throws ClassCastException {
    if (!(anotherCountry instanceof Country))
        throw new ClassCastException("A Country object expected.");
    String anotherCountryName = ((Country) anotherCountry).getName();  
    int i = this.name.compareTo(anotherCountryName);
    if(i < 0){
        return -1;
    } else {
        return 0;
    }
}

error:

@Override
public int compareTo(Object anotherCountry) throws ClassCastException {
    if (!(anotherCountry instanceof Country))
      throw new ClassCastException("A Country object expected.");
    String anotherCountryName = ((Country) anotherCountry).getName();  
    return this.name.compareTo(anotherCountryName);

Description Resource    Path    Location    Type

名称冲突:Country 类型的方法compareTo(Object) 与Comparable 类型的compareTo(T) 具有相同的擦除,但不会覆盖它 Country.java /Lab2_prob 4/src line 17 Java Problem

Description Resource    Path    Location    Type
The method compareTo(Object) of type Country must override or implement a supertype method  Country.java    /Lab2_prob 4/src    line 17 Java Problem

和班级:

public class Country implements Comparable<Country>{
    private String name;
    private String capital;
    private int area;

Description Resource    Path    Location    Type

Country 类型必须实现继承的抽象方法 Comparable.compareTo(Country) Country.java /Lab2_prob 4/src line 2 Java Problem


Your Country类应该实现Comparable:

public class Country implements Comparable<Country>

那么你的compareTo方法应该如下所示:

@Override
public int compareTo(Country anotherCountry) {
    return this.name.compareTo(anotherCountry.getName());
}

注意签名compareTo。参数可以(并且必须)是类型Country, not Object。这是必需的,因为通用类型参数Comparable。好处是您不必再检查类型。缺点是只能比较Country给其他人Country对象(或其子类型),但在大多数情况下,这正是您想要的。如果不是,您必须更改类型参数,例如如果你使用Comparable<Object>的签名compareTo can be Object再次。您可以阅读有关泛型的更多信息here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让你自己的班级具有“可比性” 的相关文章

  • JNA - EnumProcessModules() 未返回所有 DLL?

    我试图从游戏中读取坐标 当我在通过 OpenProcess 接收的 HANDLE 上使用 ReadProcessMemory 以及我在 CheatEngine 中找到的内存时 效果非常好 例如 如果我知道正在运行的进程中的浮点值是0x5AB
  • Java中RandomAccessFile的并发

    我正在创建一个RandomAccessFile对象通过多个线程写入文件 在 SSD 上 每个线程都尝试在文件中的特定位置写入直接字节缓冲区 并且我确保线程写入的位置不会与另一个线程重叠 file getChannel write buffe
  • 检查发送到网页的请求数

    我正在编写一个 Java 多线程应用程序 它可以访问不同 Web 服务器的数百万个 有时甚至数十亿个 URL 这个想法是检查这些 URL 是否给出有效的 200OK 响应或 404 其他代码 我如何知道我的程序是否不会在他们的服务器上造成高
  • 通过 html tidy 提供渲染 jsp 页面

    我有一个在 Glassfish 上运行的 Java 项目 它会呈现一些难看的 HTML 这是使用各种内部和外部 JSP 库的副作用 我想设置某种渲染后过滤器 通过 HTMLTidy 提供最终的 HTML 这样源代码就很好且整洁 有助于调试
  • Java中的文字赋值[重复]

    这个问题在这里已经有答案了 定义上有什么区别 double example 23 1d or double example 23 1 为什么long float double可以以l f d结尾 之间没有区别double example 2
  • 如何在Spring Boot中初始化一次MongoClient并使用它的方法?

    您好 我正在尝试导出MongoClient在 Spring Boot 中成功连接后 我尝试在其他文件中使用它 这样我就不必每次需要在 MongoDB 数据库中进行更改时都调用该连接 连接非常简单 但目标是将应用程序连接到我的数据库一次 然后
  • jpa2 CriteriaBuilder order by “ORDER BY 表达式必须出现在选择列表中”

    我正在写一个查询标准生成器 但无法添加order by子句 因为它随消息一起抛出错误ORDER BY 表达式必须出现在选择列表中这是我的实体 public class A Integer aId ManyToOne JoinColumn n
  • 如何将抽象工厂与单例模式结合起来? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在用 java 编码 并且对这些模式很陌生 谁能给我一个也使用单例的工厂抽象的例子 这是一个实现类的示例单例模式 这个实现也是线程安全
  • Java Spark DataFrameReader java.lang.NegativeArraySizeException

    学习 Spark for java 并尝试阅读 csv文件为DataFrame使用DataFrameReader 甚至不能得到一个超级简单的 csv文件工作 因为我不断收到异常java lang NegativeArraySizeExcep
  • EL 通过 Scriptlet

    在 JSP 中使用 EL 相对于 scriptlet 的优势是什么 EL 被认为是无脚本语言 EL 使 JSP 免受容易出错原始 Java 代码并强制您根据 MVC 思想编写 JSP EL 或像 JSTL 这样的标签库 不可能实现的任何事情
  • 从字符串生成密钥?

    我需要从字符串生成一个密钥 以便我始终可以从同一字符串创建相同的密钥 具体来说是一个Key对象 这样我就可以用它来创建Cipher进而创建SealedObject 这在 Java 中可行吗 我应该考虑什么类 方法组合才能做到这一点 对于 A
  • AffineTransform.rotate() - 如何同时缩放、旋转和缩放?

    我有以下代码 它可以完成我想要绘制一个上面有一些棋子的棋盘的 第一部分 Image pieceImage getImage currentPiece int pieceHeight pieceImage getHeight null dou
  • EMF Eclipse:带有自定义字段(属性)的枚举

    好吧 在 Java 中这是可能的 import org eclipse emf common util Enumerator public enum MyEnum implements Enumerator LITERAL1 0 Name
  • net.sf.jasperreports.engine.JRRuntimeException:java.io.IOException:无法读取字体数据

    我正在尝试通过 JasperReport 创建 PDF 报告 但读取字体数据时出现问题 我有 jasperreports extension properties 和 ClassPath 中的相关 TTF 文件 这是错误 java io I
  • 如何在 JdbcTemplate 中创建 mySQL 存储过程

    背景 为了解决 MySql 中某些语句只允许在存储过程中出现的问题 我尝试在 JdbcTemplate 提交的 sql 中创建 运行然后删除存储过程 一个简单的例子是 这恰好是在 Spring Boot 中 Service public c
  • bufferedinputstream 中标记读取限制有什么用

    我是Java流的新手 我想读取特定的文件内容 然后需要从头开始读取 我创建了一个 BufferedInputStream 但我对 BufferedInputStream mark int markLimit 的文档感到困惑 文档说 publ
  • Java 验证日期为 yyyyMMddHHmmss

    我想在java中验证给定的日期格式为yyyyMMddHHmmss 状况 应符合格式 yyyyMMddHHmmss 它应该验证当前日期 它应该验证与当前小时有 3 小时或 3 小时差异的小时数 如果满足所有三个条件 Java 方法应返回 tr
  • Lucene/Hibernate 搜索锁定异常

    我使用 Hibernate Search 在 Web 应用程序上索引和全文搜索项目 没有问题 来自我的 pom xml
  • 如何列出Resources文件夹中的所有文件(java/scala)

    我正在编写一个函数 需要访问资源中的文件夹 并循环遍历所有文件名 如果这些文件符合条件 则加载这些文件 new File getClass getResource images sprites getPath listFiles 返回空指针
  • AndroidAnnotations 和 Dagger

    我正在尝试使用 Dagger 注入 Android 带注释的 Activity java lang IllegalArgumentException No inject registered for members com app serv

随机推荐

  • 使用 Visual studio 2013 Professional 的 Windows Phone 8 应用程序 [重复]

    这个问题在这里已经有答案了 在将 Visual studio 2010 升级到 2012 2013 的混乱中 2013 年是创建 Windows 商店应用程序的唯一选择 但没有给出对 Windows Phone 应用程序开发的支持的清晰图片
  • 在java中将二维二进制矩阵转换为黑白图像

    我是java新手 我现在有只有 1 和 0 的 2D 二进制矩阵 我想将其保存为具有相同宽度和高度的jpg图像 黑白 我怎么能意识到这一点呢 我尝试了下面的代码但失败了 说 java lang IllegalArgumentExceptio
  • 如何建立 .NET 开发树? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 如何建立 NET 开发树 我使用这样的结构 projectname config where I put the configuration files doc where I put a
  • 当我输入“cd ~”时,“~”是什么目录?

    我刚开始使用 SSH 但是当我登录时 我最终会进入目录 通常与 FTP 进入时的目录相同 我仍然可以转到 但我不知道 是什么意思 家 它与 的关系在哪里 或者我怎样才能找到 是当前登录用户主目录的别名 要找出它到底在哪里 请输入pwd 代表
  • 两个文件包含 main() Visual Studio 的定义?

    我在 Visual Studio 2008 专业版中创建了一个项目 该项目为每个作业包含一个 cpp 文件 如下所示 Source Files 233 cpp test cpp 每个文件都包含 main 的定义 操作 CTRL F5 Err
  • 更新视图控制器之间的状态栏样式

    In my info plist 我有的文件View controller based status bar appearance set to YES 我有一个FirstViewController状态栏隐藏的地方 In my Secon
  • 如何从 lxml 获取原始 XML?

    我使用以下代码来定位 div parser etree HTMLParser tree etree parse StringIO page parser div tree xpath div class content 0 我唯一的问题是
  • clang 完成不起作用

    我为 vim 安装了 clang complete 但它不起作用 例如 当我输入std 在使用 vim 的 c 文件中 vim 窗口的底部显示 User defined completion U N P Pattern not found
  • java.lang.ClassNotFoundException:TopologyMain

    我正在尝试向本地风暴集群提交一个简单的字数统计拓扑 首先 我尝试使用 Maven 然后使用 Storm 命令行客户端 我使用 eclipse 创建了 JAR 文件 但是 它抛出主类未找到异常 谁能告诉我可能是什么问题 我在下面附上代码和异常
  • 如何在R中summary中获取群的众数

    我想比较两个不同索赔付款人的 CPT 代码的成本 两者都有平价和非平价提供商 我在用dplyr and modeest mlv 但它没有按预期工作 这是一些示例数据 source CPTCode ParNonPar Key net paid
  • 无法在 Firebase 控制台中创建新项目

    当我在 Firebase 控制台中创建项目时 收到错误 您已超出可以创建的免费 G oogle 项目的最大数量 请尝试在 Google API 控制台中删除未使用的项目或请求增加项目限制 我从 Firebase 控制台中删除了未使用的项目
  • 将点捕捉到一条线

    我有两个 GPS 坐标 它们连接在一起形成一条线 我还有一个 GPS 点 该点靠近该线 但从未完全在线上 我的问题是 如何找到沿线到给定点最近的点 游戏开发者对此有一个答案 它是用 C 编写的 但应该很容易移植 哪个CarlG has 好心
  • Malloc 和 scanf

    我对几种脚本语言相当有能力 但我最终强迫自己学习原始 C 我只是在玩一些基本的东西 现在是 I O 如何分配堆内存 在分配的内存中存储字符串 然后将其吐出 这就是我现在所拥有的 我怎样才能让它正常工作 include
  • 将嵌套的 JSON 解析为 R 中的数据帧

    我在处理非常讨厌的嵌套 JSON 时遇到了麻烦 格式是这样的 matches matchId 1 region BR participants participantId 0 teamId 200 stats winner true cha
  • Symfony2 - 仅限匿名用户而非用户访问登录和注册页面

    我有一个带有登录表单的网站 成功登录后 我被重定向到索引 但是当我单击后退按钮时 它仍然让我查看登录表单 这不太好 我希望只有匿名查看者才能访问登录表单 而已经登录的用户则无法访问 在 symfony2 中有一个简单的方法可以做到这一点吗
  • 没有可编译的体系结构(ONLY_ACTIVE_ARCH=YES,活动 arch=armv7,VALID_ARCHS=armv6 i386)

    我在构建 iOS 应用程序时遇到此错误 没有可供编译的架构 ONLY ACTIVE ARCH YES active arch armv7 VALID ARCHS armv6 i386 我在尝试使用 ACAccountTypeIdentifi
  • Java 枚举、JPA 和 Postgres 枚举 - 如何让它们一起工作?

    我们有一个带有 postgres 枚举的 postgres 数据库 我们开始将 JPA 构建到我们的应用程序中 我们还有 Java 枚举 它反映了 postgres 枚举 现在最大的问题是如何让 JPA 一方面理解 Java 枚举 另一方面
  • 多态性 - 只需两句话即可定义[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我看过其他定义和解释 但没有一个让我满意 我想看看是否有人可以在不使用任何代码或示例的情况下最多用两句话来定义多态性 我不想听到 所以你有一个人 汽车 开罐器 或者这个词是如何衍
  • 如何禁用 Android EditText 中的粘贴选项

    我有一个要求 在哪里EditText不允许粘贴 但应该允许复制 我试过setCustomSelectionActionModeCallback但它禁用了复制选项 EditText etxt EditText findViewById R i
  • 让你自己的班级具有“可比性”

    我遵循了教程 但未能成功Country class Comparable for my BST Main BinarySearchTree A new BinarySearchTree Country a new Country Roman