为了账号安全,请及时绑定邮箱和手机立即绑定

java.lang.IllegalArgumentException:无法识别的字段“面包”

java.lang.IllegalArgumentException:无法识别的字段“面包”

汪汪一只猫 2022-06-15 14:42:46
这是我的 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;

  }

}


查看完整回答
反对 回复 2022-06-15
?
红颜莎娜

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 = "";

}

这些工作中的任何一项。


查看完整回答
反对 回复 2022-06-15
  • 2 回答
  • 0 关注
  • 366 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信