public int maximumUnits(int[][] boxTypes, int truckSize) {
Arrays.sort(boxTypes,
Comparator.comparingInt(a -> a[1]).reversed());
提示error: array required, but Object found Comparator.comparingInt(a -> a[1]).reversed());
IDEA 对a -> a[1]
里面的a[1]
标红
我看Comparator.comparingInt
返回了一个 Comparator 对象,对这个对象调用 reversed 为什么不行呢
1
Jooooooooo 2022-11-15 00:38:39 +08:00
array required
|
2
mind3x 2022-11-15 00:48:32 +08:00
javac 的类型推导比较残,不知道你这里的 a 是 int[]类型。解决办法是告诉它:
```lang=java Arrays.sort(boxTypes, Comparator.<int[]>comparingInt(a -> a[1]).reversed()); ``` 这也相当于 ```lang=java Arrays.sort(boxTypes, Comparator.comparingInt(a -> ((int[])a)[1]).reversed()); ``` |
3
mind3x 2022-11-15 00:49:09 +08:00
所以 V2EX 的 markdown 应该怎么用 [掀桌]
|
4
mind3x 2022-11-15 00:56:22 +08:00
更正一下,看起来不是 javac 的问题。你原本的代码 javac 编译是没问题的,是 IntelliJ 自身的类型推导有问题。我的版本是 2022.2.3 Ultimate.
|
5
jinliming2 2022-11-15 02:04:53 +08:00 via iPhone
@mind3x 只能发帖的时候发 markdown ,回帖的时候不行
|
6
Pantheoon 2022-11-15 09:25:49 +08:00 via Android
我以为又是啥 crazy ThUrsday 的新段子🙈
|
7
Achieve7 2022-11-15 09:39:42 +08:00
Comparator 需要泛型, 不然就是 Object, 无法进行类型推倒
|
10
movq OP @mind3x 按照
```lang=java Arrays.sort(boxTypes, Comparator.<int[]>comparingInt(a -> a[1]).reversed()); ``` 这种写法则 IDEA 和 javac 都不报错 |
11
oceanthe1h 2022-11-15 14:06:58 +08:00
每日一题
|
12
lisongeee 2022-11-15 14:43:07 +08:00 2
@mind3x
> 所以 V2EX 的 markdown 应该怎么用 [掀桌] [v2ex 评论 markdown 支持]( https://greasyfork.org/zh-CN/scripts/449771-v2ex%E8%AF%84%E8%AE%BAmarkdown%E6%94%AF%E6%8C%81) |