gpt4 book ai didi

java - 将 Boolean 更改为 boolean 会在 MapStruct 中引发 noSuchMethodError

转载 作者:行者123 更新时间:2023-12-02 01:52:00 31 4
gpt4 key购买 nike

我有一个由 hibernate 定义的 boolean 值

public class MyClassWithMyVar {

@Column(name="myVar", nullable=false)
private Boolean myVar;

public Boolean getMyVar(){
return myVar;
}

public void setMyVar(Boolean myVar){
this.myVar=myVar;
}

}

我们确实知道这个 boolean 值永远不应该为 null,这是由 mapstruct 在某些映射器中使用的

@Mapper
@Mappings({@Mapping(target = "id", ignore =true)})
abstract MyClassWithMyVar copyMyClassWithMyVar(MyClassWithMyVar myClassWithMyVar);

然后我将所有具有 boolean 值的位置更改为 boolean 值,运行我的应用程序并抛出 NoSuchMethodError:

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoSuchMethodError: MyClassWithMyVar.getMyVar()Ljava/lang/Boolean;

最佳答案

mapstruct遵循JavaBeans规范,并且JavaBeans规范http://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/说:

for boolean properties, we allow a getter method to match the pattern: public boolean is<PropertyName>();

应该用于 boolean 值(原始类型)当我们确实想返回对象时,我们使用 getX() 例如 boolean 值 getMyBoolean()。

关于java - 将 Boolean 更改为 boolean 会在 MapStruct 中引发 noSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52831097/

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