![](/img/trans.png)
[英]Java Why am I getting a NullPointerException while instantiating my array
[英]When i upgraded java version to openJDK 11, I am getting nullpointerException while loading modelmapper configurations
將 Java 版本升級到 openJDK 11 后,modelMapper 配置未加載,出現 NullPointerException。
NullPointerException issue is not resolved even after upgrading modelMapper version to 2.3.2
錯誤日志:
1) 配置映射失敗
堆棧跟蹤:
at org.modelmapper.internal.Errors.throwConfigurationExceptionIfErrorsExist(Errors.java:241)
at org.modelmapper.internal.ExplicitMappingBuilder.build(ExplicitMappingBuilder.java:244)
at org.modelmapper.internal.ExplicitMappingBuilder.build(ExplicitMappingBuilder.java:96)
at org.modelmapper.internal.TypeMapImpl.addMappings(TypeMapImpl.java:92)
at org.modelmapper.internal.TypeMapStore.getOrCreate(TypeMapStore.java:124)
at org.modelmapper.ModelMapper.addMappings(ModelMapper.java:113)
...
Caused by: java.lang.NullPointerException
at org.modelmapper.internal.ExplicitMappingBuilder$ExplicitMappingInterceptor.access$000(ExplicitMappingBuilder.java:304)
at org.modelmapper.internal.ExplicitMappingBuilder.createAccessorProxies(ExplicitMappingBuilder.java:287)
at org.modelmapper.internal.ExplicitMappingBuilder.createProxies(ExplicitMappingBuilder.java:277)
at org.modelmapper.internal.ExplicitMappingBuilder.visitPropertyMap(ExplicitMappingBuilder.java:266)
at org.modelmapper.PropertyMap.configure(PropertyMap.java:386)
at jdk.internal.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.modelmapper.internal.ExplicitMappingBuilder.build(ExplicitMappingBuilder.java:227)
... 6 more
在內部,ByteBuddy 正在拋出導致問題的異常,我將進一步研究它,看看是否可能是 ModelMapper 中的錯誤。
無論如何,請查看http://modelmapper.org/user-manual/property-mapping/ 上的 Java 8 選項卡,您當前的代碼似乎正在使用舊文檔。
ModelMapper mm = new ModelMapper();
TypeMap<A, B> typeMap = mm.createTypeMap(A.class, B.class);
typeMap.addMappings(mapper -> {
mapper.map(A::getDate, B::setTest);
... // Other mappings
});
這可以轉換Date -> Long開箱即用,無需任何其他配置。 如果您想進一步配置它,您可以隨時創建自定義轉換器,如下所示:
Converter<Date, Long> dateToLong = new AbstractConverter<Date, Long>() {
@Override
protected Long convert(Date source) {
System.out.println("converting: " + source + " to " + source.getTime());
return source.getTime();
}
};
typeMap.addMappings(mapper -> mapper.using(dateToLong).map(A::getDate, B::setTest));
我在使用 modelmapper 2.3.0 時遇到了同樣的問題。 更新到最新的 2.3.9 並解決了問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.