java - Comparable 是原始类型。对泛型类型 Comparable 的引用应该参数化
问题描述
我正在设置我的变量
Map<String, Function<CLASS_NAME, Comparable>> map = new HashMap<>();
在哪里Comparable
给出警告信息
Comparable is a raw type. References to generic type Comparable<T> should be parameterized
我正在使用它
map.put(VARIABLE_NAME1, s -> s.getStringProperty());
map.put(VARIABLE_NAME2, s -> s.getIntProperty());
..
我正在使用比较喜欢
Comparator<CLASS_TYPE> v = Comparator.comparing(map.get(VARIABLE_NAME), Comparator.nullsFirst(Comparator.naturalOrder()));
应该使用什么类型的 Generic 来避免警告?
解决方案
Comparable 显然是一个泛型类型。
所以你需要的只是:
Map<String, Function<CLASS_NAME, Comparable<CLASSNAME>>> map = new HashMap<>();
代替
Map<String, Function<CLASS_NAME, Comparable>> map = new HashMap<>();
或者你想比较另一种类型..?
Map<String, Function<CLASS_NAME, Comparable<SomeOtherClass>>> map = new HashMap<>();
推荐阅读
- javascript - 使用 javascript 将 html 表导出到 Excel 中
- swift - SwiftUI, Why ONLY ONE 'navigationBarItems' is shown?
- jquery - Bootstrap 4 树状表问题。无法让所有孩子正确关闭
- python - 根据条件对熊猫系列进行分组
- django - 如何在 Django {% if %} 模板标签中使用运算符?
- java - Spring Data - 编写派生查询以按字段值长度进行选择
- flutter - RenderFlex 溢出错误仅出现在小部件测试中,如果我运行应用程序一切正常
- google-apps-script - 如何在触发的 Google Apps 脚本中使用 OAuth
- java - GRPC Java - 防止内存泄漏
- python - 如何在python中删除子字符串