在 Java 8 中使用 Java 7 比较器

2024-04-25

情况

我有一个 OSGi 项目,我正在尝试迁移到 Java 8。在我的项目中,我依赖于我“OSGi-fied”的第三方库(只需添加MANIFEST.MF文件并将元数据放入其中)。这些库是从只读 SVN 存储库中签出的,因此我可以在需要时签出更新,因此我不想进行除MANIFEST.MF文件,因为我cannot提交它们。

Problem

然而,这些库使用大量匿名比较器,例如:

private static final Comparator heightComparator = new Comparator() {
    public int compare (Object o1, Object o2) {
        return ((Glyph)o1).getHeight() - ((Glyph)o2).getHeight();
    }
};

现在,显然java.util.Comparator接口有一大堆需要实现的新方法(这当然会导致编译错误)。但我真的想避免实现它们或切换到 Lambda 表达式,因为每次我检查新版本时修改原始源很可能会导致冲突。

Java 过去在向后兼容性方面付出了很大的努力,我想知道为什么 API 中如此简单且广泛使用的部分需要如此(相对)大量的精力来迁移。我错过了什么还是真的不可避免?


我有一个类似的问题,比如 thobens:更新了我的 Kepler 4.2.3 以使用 Java 8,将 JAVA 8 设置为新的 JRE 等。 像托本斯一样,我在 Eclipse 的比较器上遇到了错误,要求我实现所有未实现的方法。

最后,这是由旧的编译器合规级别(1.7)引起的 - 切换到 1.8 解决了这个问题。

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

在 Java 8 中使用 Java 7 比较器 的相关文章

  • Java 中如何将 long 转换为 int?

    Java 中如何将 long 转换为 int 在 Java 8 中更新 Math toIntExact value 原答案 简单的类型转换应该可以做到 long l 100000 int i int l 但请注意 较大的数字 通常大于214
  • GSON:如何在保持循环引用的同时防止 StackOverflowError?

    我有一个带有循环引用的结构 出于调试目的 我想转储它 基本上任何格式都可以 但我选择了JSON 由于它可以是任何类 所以我选择了不需要 JAXB 注释的 GSON 但是 GSON 会遇到循环引用并递归直到StackOverflowError
  • 无法使用 Maven 编译简单的 Java 10 / Java 11 项目

    我有一个简单的 Maven 项目 src main java module info java pom xml pom xml
  • 如何生成带logo的二维码?

    我正在为 Android 设备开发应用程序 我想生成带有徽标的二维码 With ZXing I know how to generate simple QR codes like this one But I want to generat
  • 查看登录设备

    我想查看Log在设备上 即System out println 我可以查看DDMS但如何在运行时在设备屏幕上查看APK文件 还有一个适用于 Android 的 Logcat 应用程序 code google com p android ra
  • 如何在angularjs中读取pdf流

    I got the following PDF stream from a server 如何在 AngularJS 中读取这个流 我尝试使用以下代码在新窗口中将其作为 PDF 文件打开 success function data wind
  • antisamy 解析器强制关闭标签

    我使用 Antisamy 来验证 HTML 我的政策允许 iframe 例如 YouTube 视频 问题是 如果标签为空 像这样 清洗后会是这样的 但它应该有正常的结束标签 这会破坏之后页面上的所有内容 我已经将指令设置为使用大部分 HTM
  • Swing 是否支持 Windows 7 风格的文件选择器?

    我刚刚添加了一个标准 打开文件 与我正在编写的一个小型桌面应用程序的对话 基于JFileChooserSwing 教程的入口 http download oracle com javase tutorial uiswing componen
  • Java俄罗斯方块旋转

    我知道这个问题已经被问了很多 但我想知道如何旋转俄罗斯方块 我已经做了一个又长又糟糕的解决方案 大约 170 行代码 但应该有更简单的方法来做到这一点 我的俄罗斯方块由 4 个块组成 它们都知道它们在矩阵中的位置 行和列 Matrix本身是
  • Android 是否可以获取用户和设备所在国家/地区的货币代码?

    是否可以获取用户和设备所在国家 地区的货币代码 我想将用户当前国家 地区的国家 地区代码设置为默认国家 地区 我们在 Android 中有解决方案吗 由于这段代码可能对您有帮助 public class CurrencyTest publi
  • 如何设置 Eclipse 以停止发生异常的线路?

    如何设置 Eclipse 在发生异常时停止 我有一个 Eclipse 断点设置来在异常时中断 在下面的代码示例中 我遇到的问题是 Eclipse 尝试打开 Integer 源代码 有没有办法让调试器在我的代码示例中显示的位置中断 如果我向下
  • 在 Android 谷歌地图中绘制 4K 折线

    我现在正在开发一个适用于 Android 设备的应用程序 主要功能是在地图上绘制折线以显示城市中每条街道的交通情况 不幸的是 当我绘制大约 3K 折线时 数量会根据屏幕尺寸和缩放级别而减少 我的地图变得非常慢 我没有提及绘制所有线条的时间
  • Java TreeMap时间复杂度-lowerKey

    时间复杂度是多少lowerKey Java实现中的操作TreeMap 我认为它是 log n 但我在文档中找不到它 更基本操作的复杂性已有详细记录 此实现提供了有保证的 log n 时间成本 containsKey 获取 放置和删除操作 顺
  • int 到 long 赋值

    我一直在尝试这个 int 和 long 转换 我尝试分配一个int变量为along多变的 代码如下 public static void main String args int i 1024 long j i long k i i i i
  • 策略模式的现实示例

    我一直在读关于OCP原理 http en wikipedia org wiki Open closed principle以及如何使用策略模式来实现这一目标 我打算尝试向几个人解释这一点 但我能想到的唯一例子是根据 订单 的状态使用不同的验
  • java中类的命名约定 - 全部大写

    在 Java 中 当类全部大写时 如何命名它 例如 如果我想创建一个班级来选择某些人成为 VIP 我应该将类命名为 VIPSelector 还是 VipSelector Thanks 你的两个选择都有效 类的主要目标是让它们以大写字母开头
  • 如何在 JUnit5 中为测试套件设置自定义测试执行顺序?

    我在 JUnit5 上进行了大量测试 并在多个线程中并行运行 还有有关每次测试时间的信息 我想在最长的测试开始时运行 并将最快的测试留在最后以优化公共执行时间 我还没有找到在 JUnit5 中执行此操作的方法 版本中5 4有一个org ju
  • Spring Boot MultipartFile上传getOriginalFileName根据浏览器不同而不同

    我使用的是 spring boot 1 5 7 RELEASE 版本 我使用以下方法上传文件 Autowired private MyService mySerice RequestMapping value uploadFile meth
  • Java:如何复制对象数组?

    现在 我有一个 Point 对象数组 我想制作一个COPY该数组的 我尝试过以下方法 1 Point temp mypointarray 2 Point temp Point mypointarray clone 3 Point temp
  • 使用 jar 外部的配置启动 .jar,但能够从任何当前目录执行此操作

    我一直在努力解决一个特定的问题 我在 jar 文件中有一个 Java 程序 并且在 jar 之外有一个 lib 目录和一个 config 目录 但与 jar 本身所在的目录位于同一目录中 我正在尝试参考config foo config从代

随机推荐

  • 如何在cocos2dx 3.0中调用callfunc函数

    我必须将 Objective C 转换为 C 11 我坚持使用以下语法 我已在 testcpp 中引用并尝试以下语法 这是我尝试过的代码 this gt runAction Sequence create blink CallFunc cr
  • Reset.css 在 IE7/IE6 中覆盖 colgroup 背景

    我有一个表 其中的列具有由 colgroup 设置的不同背景 然而 在 IE6 7 中 它完全忽略 colgroup 背景并采用单元格的 Reset css 背景值 即背景 透明 如何解决此问题 而无需转到每个单元格并手动输入背景值 HTM
  • 安装期间初始化 user.config 或 app.exe.config

    我正在开发一个 NET WinForms 应用程序 它依赖于 user config 来存储各种有用的设置 例如 Intranet Web 服务 URL 我们希望能够在安装过程中导入自定义初始设置 其用例是 如果一家公司想要在 100 台计
  • Spring Boot - 微服务之间如何通信?

    我目前正在开发一个 Spring Boot 微服务项目 我创建了服务 每个服务都单独运行 这样 我需要一些服务来与其他服务进行通信 我怎样才能做到这一点 我看到一些关于此的博客使用 Netflix Eureka 云服务器来实现这一点 有什么
  • mysql中auto_increment(整数)的限制是多少

    我有一个mysql数据库 我在其中使用auto increment integer 你能告诉我它可以增加多少整数吗 我们如何提高auto increment的限制 的极限auto increment column 是列的大小 https d
  • PHP / OpenCart 2.2.0 - 创建自定义主题

    我今天开始在 OpenCart 2 2 中进行主题开发 我正在关注这篇文章 http code tutsplus com tutorials create a custom theme with opencart introduction
  • 类型错误:“itertools.combinations”对象不可下标

    当我尝试运行时 temp twoset2 x i 0 twoset x i 1 I get 类型错误 itertools combinations 对象不可下标 My code for x in range 0 64 for i in ra
  • 如何在动态更新时检测输入的值变化(Angular 6)

    我正在使用自定义指令和自定义管道对文本输入进行货币格式化 它适用于任何类型的直接用户输入 焦点 模糊 按键 但是 当值动态更改时 我似乎无法捕获更改事件 我也找不到可靠的主机侦听器事件列表 并且不知道如何捕获进入输入的任何事件 因此无法看到
  • 如何在 API 模式下使用 Doorkeeper 处理 OAuth 流程?

    场景很简单 A 仅限 Rails API带有 Doorkeeper 提供商的服务器 A 移动应用 and a SPA 假设是 React 想要使用电子邮件和密码注册和登录的用户 当你有一个正常的Rails 堆栈 你需要定义一个authori
  • RecyclerView 和 Picasso 图像滚动后消失

    我没有找到答案here https stackoverflow com questions 29564824 recyclerview disappearing images here https stackoverflow com que
  • GWT 和 Google 文档 API

    我正在使用 GWT 创建一个简单的应用程序 让教师可以轻松创建自己的课程 该应用程序将位于 Google App Engine 上 但我想将课程存储在用户的 Google 文档空间中 是否可以 据我所知 gwt 将 java 转换为 jav
  • 未捕获的错误:期望增强器是一个函数

    我试图从组件调用减速器并希望在组件中渲染它 但是当我尝试将减速器存储在 redux 的 createStore 方法中时 出现了上述错误 我的代码是这样的 import applyMiddleware compose createStore
  • Powershell Invoke-RestMethod 授权标头

    当调用一个Invoke RestMethod使用 Powershell 例如 Invoke RestMethod Method Get Uri https google com api GetData Headers headers and
  • Pandas 读取缺少一个标头的 csv

    我正在尝试使用 Pandas 读取 csv 文件 但第一列包含用逗号分隔的名字和姓氏 这会导致 Pandas 认为有 5 列而不是 4 列 因此最后一列现在没有标题 因此无法选择它 该文件如下所示 CustomerName ClientID
  • 在 SQL 中将字符串拆分为多行

    我继承了一个数据库 在努力使其更干净 更有用的过程中 我遇到了以下问题 将文件列移动到单独的表后 我现在的任务是将这些文件分成不同的行 请看我下面的例子 key jobid files 1 30012 file1 pdf file2 pdf
  • SSRS 聚合聚合

    这两天我都在用头撞墙 我的场景是这样的 我有一个记录集 在 SSRS 表中分为 4 组 他们是 StartPeriod gt Area gt Job gt Details 相关列包含两个不同的记录计数 一个是有错误的记录数 另一个是该组的记
  • SWI-Prolog 中的约束编程

    我想要一个包含三个元素 A B 和 C 的列表 L 并具有以下约束 use module library clpfd L A B C L ins 1 3 A B C 但是 它给出了一个错误 Syntax error Operator exp
  • UIViewController 弹出时未释放

    我有一个表视图 当选择一个单元格时 它将视图控制器推送到导航堆栈上 SAPostTableViewController postViewController SAPostTableViewController alloc initWithN
  • android kotlin java.io.FileNotFoundException:/storage/emulated/0/number.txt:打开失败:EACCES(权限被拒绝)

    我正在使用 kotlin 为 Android 10 编写一个应用程序 该应用程序必须读取名为number txt来自内部存储 但它总是失败 java io FileNotFoundException storage emulated 0 n
  • 在 Java 8 中使用 Java 7 比较器

    情况 我有一个 OSGi 项目 我正在尝试迁移到 Java 8 在我的项目中 我依赖于我 OSGi fied 的第三方库 只需添加MANIFEST MF文件并将元数据放入其中 这些库是从只读 SVN 存储库中签出的 因此我可以在需要时签出更