gpt4 book ai didi

java.lang.IllegalArgumentException : Unrecognized field "loaf"

转载 作者:行者123 更新时间:2023-12-01 19:42:57 25 4
gpt4 key购买 nike

这是我的 JUnit 测试:

package general;

import io.vertx.core.json.JsonObject;
import io.vertx.ext.unit.TestContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

class Foo {

String loaf = "";

static boolean dog() {
return true;
}
}

public class GeneralTest {

@Test
public void test() {
JsonObject v = new JsonObject();
v.put("loaf","box");
var k = v.mapTo(Foo.class);
System.out.println(k);
}
}

当我运行它时,我收到此错误:

java.lang.IllegalArgumentException: Unrecognized field "loaf" (class general.Foo), not marked as ignorable (0 known properties: ])
at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: general.Foo["loaf"])
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:3750)
at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:3668)
at io.vertx.core.json.JsonObject.mapTo(JsonObject.java:106)
at general.GeneralTest.test(GeneralTest.java:33)

我不明白为什么它不接受 Foo.class 为有效?

最佳答案

有几种可能的解决方案。一是创建公共(public)属性(property),正如 MrCholo 提到的。

class Foo {
public String loaf = "";
}

另外,创建一个 setter。

class Foo {
String loaf = "";

public void setLoaf(String loaf){
this.loaf = loaf;
}
}

或者最后,对其进行注释。

class Foo {
@JsonProperty
String loaf = "";
}

其中任何一项都有效。

关于java.lang.IllegalArgumentException : Unrecognized field "loaf",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54644853/

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