将类转换为记录时的兼容性问题

问题描述 投票:5回答:1

我一直在使用以下名为City的类

@ToString
@AllArgsConstructor
public class City {
    Integer id;
    String name;
}

并尝试将其转换为名为recordCityRecord as >>

record CityRecord(Integer id, String name) {} // much cleaner!

但是使用这种表示法,我们的单元测试之一开始失败。测试在内部处理从JSON文件读取并映射到对象的城市列表,进一步将城市分组到Map下。简化为:

List<City> cities = List.of(
        new City(1, "one"),
        new City(2, "two"),
        new City(3, "three"),
        new City(2, "two"));
Map<City, Long> cityListMap = cities.stream()
        .collect(Collectors.groupingBy(Function.identity(),
                Collectors.counting()));

以上代码断言为true,其中包含4个键,每个键占其出现次数的1。对于记录表示,结果Map中的键数不得超过3个。是什么原因造成的,应该怎么解决?

我一直在使用以下名为City @ToString @AllArgsConstructor的类,公共类City {Integer id;字符串名称; },并尝试将其转换为名为CityRecord的记录,格式为...

java compatibility java-14 java-record
1个回答
4
投票

原因

© www.soinside.com 2019 - 2024. All rights reserved.