这是我的 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条经验 获得超12个赞
有几种可能的解决方案。一种是创建如前所述的公共财产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
提交
取消