有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java Bean“已”从属性名中删除

在一类“Ismarked”上有一个布尔值

当我在RESTful端点中返回该对象时,该对象的返回方式如下:

{..., "marketed": true, ...}

但是,当我创建对象时(通过传入一些JSON并使用GSON创建对象),它希望我提供如下内容:

{..., "isMarketed": true, ...}

有人能解释一下为什么会这样吗


共 (2) 个答案

  1. # 1 楼答案

    这是通过设计实现的——具有某些前缀的方法,如is(用于boolean/Boolean返回类型的约定),getset被映射为特定bean对象的Javabean类在前缀后指定的属性的getter或setter。通过这样做,接受bean对象和参数名称的遗传实用程序Javabean get和set方法可以以规范化的方式检索属性

    我假设您正在使用的库正在使用这个Javabean东西,所以不会使用完整的方法名。内部字段不能直接访问,因为getter和setter可能有额外的逻辑,或者可以处理实际上不存在的字段

    void    setActive(boolean active)
    boolean isActive()
    void    setPlayer(Player player)
    Player  getPlayer()
    
  2. # 2 楼答案

    我将从属性名称中删除is。因为它令人困惑。 这就像将一个字段命名为getBread,而该字段应仅命名为bread

    我认为字段的正确名称应该是marketed,getterisMarketed()和settersetMarketed(boolean marketed)