如何在 Java 中编写实现 Comparable 的方法签名“T”?

2024-01-01

我的签名上应该有什么insert-方法?我正在与仿制药作斗争。在某种程度上,我两者都想要Comparable<T> and T我尝试过<Comparable<T> extends T>.

public class Node<T> {

    private Comparable<T> value;

    public Node(Comparable<T> val) {
        this.value = val;
    }

    // WRONG signature - compareTo need an argument of type T
    public void insert(Comparable<T> val) {
        if(value.compareTo(val) > 0) {
            new Node<T>(val);
        }
    }

    public static void main(String[] args) {
        Integer i4 = new Integer(4);
        Integer i7 = new Integer(7);

        Node<Integer> n4 = new Node<>(i4);
        n4.insert(i7);
    }
}

不确定您想要实现什么,但是您不应该将其包含在类的声明中吗?

public static class Node<T extends Comparable<T>> { //HERE

    private T value;

    public Node(T val) {
        this.value = val;
    }

    public void insert(T val) {
        if (value.compareTo(val) > 0) {
            new Node<T>(val);
        }
    }
}

注意:使用是一个很好的做法<T extends Comparable<? super T>>代替<T extends Comparable<T>>

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

如何在 Java 中编写实现 Comparable 的方法签名“T”? 的相关文章

随机推荐

  • 属性路由在区域中不起作用

    场景 我的 ASP NET MVC 5 站点中有一个表单区域 我正在尝试重定向到详细信息操作 该操作使用使用新的属性路由功能定义的自定义路由 重定向到操作 return RedirectToAction Details new slug 我
  • 使用 OpenSSL 解密 .ts 文件

    一切都在同一个目录中 M3u8 文件 EXTM3U EXT X ALLOW CACHE NO EXT X TARGETDURATION 10 EXT X MEDIA SEQUENCE 0 EXT X KEY METHOD AES 128 U
  • Bootstrap 模式样式的位置固定关闭按钮在 Internet Explorer 中无法正确显示

    我正在开发一个网站 该网站使用了引导程序3 0 2版本 我设计了一个模态关闭按钮 它可以在除 Internet Explorer 之外的所有浏览器中正确显示 我已在 ie 11 上检查过 基本上 为了让它看起来像这样 我用过这个CSS mo
  • Django 过滤器错误:“Meta.fields”不得包含非模型字段名称

    我正在使用 Django REST 框架和 django filters 并且我想使用反向关系annotation set作为过滤器之一GET使用模型的 APIDetection 型号如下 class Detection models Mo
  • 使用 React Native 获取设备令牌

    有没有办法通过本机反应获取按需通知的设备令牌 从文档来看 令牌暴露的唯一时间似乎是在 PushNotification 注册事件上 更一般地说 处理设备令牌的常见做法是什么 如果一名用户登录我的应用程序 该应用程序会向 PushNotifi
  • JQuery:根据另一个元素更改高度

    我有两个 DIV 一个 DIV 根据浏览器动态更改大小 响应式设计 我希望另一个 DIV 根据第一个 DIV 的高度修改其高度 我认为最简单的方法是使用 JQuery 动态更改高度 我尝试了以下方法 section div2 css hei
  • 创建分割档案(zip、rar、7z)?

    简而言之 I need使用虚拟安全格式将单个 或多个 文件拆分为多个最大大小的存档 例如 zip 或 rar 任何有效的文件都可以 I 会爱知道某个部分何时完成 回调 这样我就可以开始将其运走 I would 而不是除非不可能 否则请使用
  • 如何重新启动 BaseHTTPServer 实例?

    这就是我所拥有的 http py class HTTPServer def init self port self port port self thread None self run True def serve self self t
  • Android 的 Scala 编程

    我已按照以下教程进行操作斯卡拉和安卓 http www scala lang org node 160 with 斯卡拉2 7 3最终的 生成的 Android 应用程序可以运行 但即使是最基本的应用程序也需要几分钟 来编译并且需要900
  • 尝试完成输入事件,但输入事件接收器已被处理错误

    我不确定我做了什么 但有一段时间我的代码运行顺利 在我添加新活动后出现错误尝试完成输入事件 但输入事件接收器已被处置 我需要有关如何解决此问题的帮助 package proj com desperationfinals import and
  • 如何在 Ruby on Rails 中阻止特定 IP 地址

    我负责一些用 Ruby on Rails 制作的实时网站 我有一些 IP 地址不断攻击这些网站 我想阻止他们的 IP 地址 我知道他们可以使用代理绕过这堵墙 但我确实希望让他们变得更难 并且很想知道我需要在 ruby on Rails 应用
  • 如何在 Selenium IDE 中使用 FirefoxDriver 通过选项使用 setExperimentalOption?

    ChromeOptions options new ChromeOptions options setExperimentalOption useAutomationExtension false options setExperiment
  • 从进程句柄获取进程信息

    我需要得到PROCESS INFORMATION在我的应用程序中使用的外部进程 我有进程句柄和进程 ID 但我不知道如何获取PROCESS INFORMATION出于那个 我正在使用 C 11 Visual Studio 2012 在 Wi
  • 如何根据 Racket Web servlet 中的路径显示不同的内容?

    我正在尝试遵循有关简单网络应用程序的 Racket 指南上的教程 但无法得到一个基本的东西 如何让 servlet 根据请求 URL 提供不同的内容 尽管我进行了搜索 但即使是巨大的博客示例也是一个大文件 并且所有内容都在我背后用巨大的 g
  • 警报对话框按钮太近

    我看到这个东西与警报对话框按钮接触 它们之间没有空格 无论使用什么主题 都会发生这种情况 代码 builder setTitle R string sign in title builder setCancelable false setP
  • Nodejs:使用 async/await 时如何避免嵌套 .then()

    以下是我在 Node js 中尝试执行的操作 Rest API 将城市名称作为输入 我正在尝试使用输入城市的地理编码 API 获取纬度和经度 then 使用纬度和经度 我尝试使用另一个 API 获取最近城市的列表 then 对于所有这些城市
  • 无法找到 XML 模式命名空间的 Spring NamespaceHandler

    我正在 eclipse 中的 tomcat 中运行一些 servlet 代码 一直工作正常 但今天我收到错误Unable to locate Spring NamespaceHandler for XML schema namespace
  • 一笔交易中的多个聚合/存储库

    我有一个支付系统 如下所示 可以通过多张礼券进行支付 礼券随购买一起发放 客户可以使用此礼券进行日后购买 当通过礼券进行付款时 GiftCoupon 表中的UsedForPaymentID 列需要使用该PaymentID 进行更新 对于礼券
  • PHP:当名称没有数组时检索复选框的值

    我无法控制的表单是将数据发布到我的 PHP 脚本 该表单包含以下复选框
  • 如何在 Java 中编写实现 Comparable 的方法签名“T”?

    我的签名上应该有什么insert 方法 我正在与仿制药作斗争 在某种程度上 我两者都想要Comparable