Java 在托管bean中使用ModelMapper库的自定义映射会导致NullPointerException
当我试图通过在一些容器管理的对象中创建自定义映射器来添加映射时,我得到了Java 在托管bean中使用ModelMapper库的自定义映射会导致NullPointerException,java,jakarta-ee,ejb,jax-rs,modelmapper,Java,Jakarta Ee,Ejb,Jax Rs,Modelmapper,当我试图通过在一些容器管理的对象中创建自定义映射器来添加映射时,我得到了NullPointerException。我在@statelementejb服务和@RequestScoped rest服务中尝试了它。错误与此类似,发生在以下行: modelMapper.addMappings(skipCdeMap); 是虫子吗?我假设mapper正试图在托管bean上执行一些反射操作,因此getNullPointerException 这是我的代码: PropertyMap<ObjectAbcD
NullPointerException
。我在@statelementejb服务和@RequestScoped rest服务中尝试了它。错误与此类似,发生在以下行:
modelMapper.addMappings(skipCdeMap);
是虫子吗?我假设mapper正试图在托管bean上执行一些反射操作,因此getNullPointerException
这是我的代码:
PropertyMap<ObjectAbcDto, ObjectAbc> skipCdeMap =
new PropertyMap<ObjectAbcDto, ObjectAbc>() {
protected void configure() {
skip().setObjectCde(null);
}
};
modelMapper.addMappings(skipCdeMap);
我可以回答我自己的问题。我的假设是正确的。当我在Pojo或其自身中创建PropertyMap类时,专用的类映射工作得很好。所以我假设我前面的错误是由于ModelMapper对创建PropertyMap的类所做的反射而发生的。如果某个菜单化的Bean会导致NullPointerException。我可以回答自己的问题。我的假设是正确的。当我在Pojo或其自身中创建PropertyMap类时,专用的类映射工作得很好。所以我假设我前面的错误是由于ModelMapper对创建PropertyMap的类所做的反射而发生的。如果某个菜单化Bean会导致NullPointerException。我在尝试将
字符串映射到UUID
时遇到了相同的问题(使用ModelMapper v0.7.5)
例如,拥有这些类:
public class Car {
private UUID id;
// other fields
}
public class CarDto {
private String id;
// other fields
}
并尝试设置如下自定义映射:
mapper.addMappings(new PropertyMap<CarDto, Car>() {
protected void configure() {
map().setId(UUID.fromString(source.getId()));
// other mappings
}
});
public void setIdAsString(String id) {
this.id = UUID.fromString(id);
}
我在尝试将String
映射到UUID
时遇到了相同的问题(使用ModelMapper v0.7.5)
例如,拥有这些类:
public class Car {
private UUID id;
// other fields
}
public class CarDto {
private String id;
// other fields
}
并尝试设置如下自定义映射:
mapper.addMappings(new PropertyMap<CarDto, Car>() {
protected void configure() {
map().setId(UUID.fromString(source.getId()));
// other mappings
}
});
public void setIdAsString(String id) {
this.id = UUID.fromString(id);
}
您正在使用0.7.2吗?如果是这样的话,您是否碰巧有一个小测试重现了您可以发布的问题?您使用的是0.7.2吗?如果是这样的话,您是否碰巧有一个小测试复制了您可以发布的问题?您做了什么来修复它?我想我也有同样的问题,齐莫实际上是在说他做了什么来解决这个问题,但我也不得不解释答案。您必须创建一个显式类并从PropertyMap进行扩展。ExplicitMappingBuilder对此有一些问题。您是如何解决的?我想我也有同样的问题,齐莫实际上是在说他做了什么来解决这个问题,但我也不得不解释答案。您必须创建一个显式类并从PropertyMap进行扩展。ExplicitMappingBuilder对此有一些问题。我认为这是唯一适合我的正确解决方案:)谢谢!我认为这是唯一对我有效的正确解决方案:)谢谢!