0

在 ConfigurationProperties 类中,我有一个这样的地图:

@ConfigurationProperties(prefix = "some")
public class SomeConfigurationProperties {
    private Map<String, SomeClass> map = new HashMap<>();
...
}

而且我希望提到的SomeClass所有字段都是final,所以我必须实现非默认构造函数,我对此很好。不是,是弹簧初始化程序,所以在开始应用程序之前,我收到了这个错误:

 Caused by: java.lang.NoSuchMethodException: some.package.SomeClass.<init>()

我无法在 SomeClass 中设置默认构造函数,因为我将未初始化最终字段:

The blank final field somefield may not have been initialized

我应该如何使用无默认构造函数设置 bean SomeClass 的初始化,但如果它可以没有 XML Spring 配置,因为我正在使用 Spring Boot 并且不想搞砸。

更新: SomeClass 的示例:

public class SomeClass {
    private final int field1;
    private final String field2;

    // no default constructor

    public SomeClass(field1, field2) {
        this.field1 = field1;
        this.field2 = field2;
    }

    // getters & setters
}
4

0 回答 0