Java 8 个哈希图 |龙目岛@Data | Collectors.groupingBy 中的方法不可读 |组合键

Java 8 Hashmap | Lombok @Data | Method not readable in Collectors.groupingBy | Composite Key

以下是使用中的具有 lombok @Data 注释的 bean:

@Data
public class XxedgeCrtV implements Serializable {
    
    private static final long serialVersionUID = 1L;

    private String registryId;
    private String personPartyId; 
    private String source;
    
    private String compositeKey() {
        return registryId + personPartyId + source;
    }
}

当我尝试在复合键上使用 create hashmap using Java 8 时,它没有读取方法:

Set<String> duplicates  = xxedgeCrtVList.stream()
    .collect(Collectors.groupingBy(XxedgeCrtV::compositeKey, Collectors.counting()))
    .entrySet().stream()
                .filter(e -> e.getValue() > 1L)
                .map(e -> e.getKey())
                .collect(Collectors.toSet());

谁能建议如何让代码读取这个方法?

我正在制作复合键的键,因为我必须在列表中搜索重复项。

方法引用和Lombok插件都没有错误。 return 类型的分组是 Map:

Map<String, Long> duplicates  = xxedgeCrtVList.stream()
    .collect(Collectors.groupingBy(XxedgeCrtV::compositeKey, Collectors.counting()));

使用这段代码,我没有编译错误。

我打赌这是应该抱怨 return 类型而不是方法引用的 IDE 问题。如果是这样,可能还有不同的问题:

  • class XxedgeCrtV if inner 应该是 static.
  • 如果 XxedgeCrtV 在不同的文件中,compositeKey 的可见性不应是 private