gpt4 book ai didi

java - 无法使用带参数的构造函数 NO_CONSTRUCTOR 实例化 java.util.Set

转载 作者:行者123 更新时间:2023-11-30 02:23:33 24 4
gpt4 key购买 nike

我有这个代码:

@NoArgsConstructor
public class localizedInformations implements Serializable {

@Getter
@JsonProperty("infos")
private Map<String, Set<Info>> localizedInfos = new HashMap<>();
}

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class TechnicalInfo implements Serializable {

private static final long serialVersionUID = -8926217088092761683L;

private String label;

private List<String> values;
}

在执行 findAll mongo 操作时的某个时刻,我收到此错误:

Failed to instantiate java.util.Set using constructor NO_CONSTRUCTOR with arguments

你能看出问题出在哪里吗?

谢谢!

最佳答案

这是一个例子

private Map<String, Set<Info>> localizedInfos = new HashMap<>();

这段代码的问题是,当你保存数据时不会出现错误。然后当你检索数据时,(正如 Zsolt V 所解释的)java 尝试再次构建该数据,但是因为该对象的类型是一个接口(interface),java无法决定它是什么类型的Set(可以是HashSet,LinkedHashSet等)

一个简单的解决方案是使用 HashSet 而不是像这样的 Set

private Map<String, HashSet<Info>> localizedInfos = new HashMap<>();

当我尝试从 Spring 安全包中保存 Key 对象时,我遇到了这个问题,它是一个接口(interface)

祝编码人员好运。

保持堆栈流畅:D

关于java - 无法使用带参数的构造函数 NO_CONSTRUCTOR 实例化 java.util.Set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46223496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com