這是我的 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 是有效的?
2 回答

手掌心
TA貢獻1942條經驗 獲得超3個贊
我認為該字段需要公開是一個簡單的案例:
class Foo {
public String loaf = ""; // make the field public
static boolean dog(){
return true;
}
}

紅顏莎娜
TA貢獻1842條經驗 獲得超13個贊
有幾種可能的解決方案。一種是創建如前所述的公共財產MrCholo。
class Foo {
public String loaf = "";
}
另一個,創建一個二傳手。
class Foo {
String loaf = "";
public void setLoaf(String loaf){
this.loaf = loaf;
}
}
或者最后,注釋它。
class Foo {
@JsonProperty
String loaf = "";
}
這些工作中的任何一項。
添加回答
舉報
0/150
提交
取消