在項目中用到了MapStruct,對其可以轉(zhuǎn)換JavaBean特別好奇,因為之前都是使用Vo的方式手動set轉(zhuǎn)換,但是接觸到MapStruct后感覺以前使用Vo的方式確實有點low
于是就想著去看一下,寫了個demo。于是這詭異的時間就開始了
我得代碼如下:
這是pom文件
這是我的兩個javaBean
大家可以看到那個發(fā)灰的序列化接口,那是因為我再運行出結(jié)果是轉(zhuǎn)換后的JavaBean屬性為空,我以為是序列化時導致的所以我去掉了,
可是后來發(fā)現(xiàn)完全不是這個原因
這是我的mapper轉(zhuǎn)換類
還有我的啟動執(zhí)行類
正確的運行結(jié)果應該是這樣的
現(xiàn)在我的運行結(jié)果是
這讓我挺懵X的,于是我查了好多大佬的博客,都說在pom中添加 “maven-compiler-plugin” 的配置就可以解決于是我配置了
如下:
那灰色的是看到有的大佬說的這么配置,之前我的maven-compiler-plugin是3.8版本的,跟著大佬的只是做成了現(xiàn)在的樣子,但是好像還是沒什么用,
運行之后屬性就是空的,我嘗試maven-clean和maven-instell在我大量的嘗試中我突然發(fā)現(xiàn)在install之后修改那個轉(zhuǎn)換的方法名之后就可以轉(zhuǎn)換成功,屬性也有了值,
我通過debug方式去看了執(zhí)行過程中,在我沒有改方法名之前mapper的實現(xiàn)類中沒有生成set方法,但是我改了之后就會生成set方法,這也是導致屬性為null的直接原因。
我嘗試了好多的方法,看了好多的資料也沒想明白,為什么會出現(xiàn)這樣的問題,苦惱》》》啊!!
我就是在打包后改了這個方法
只要改動一下這個構(gòu)造方法就可以實現(xiàn)。。
求大佬解惑,什么原因啊
到此這篇關于MapStruct轉(zhuǎn)換javaBean時出現(xiàn)的詭異事件的文章就介紹到這了,更多相關MapStruct轉(zhuǎn)換javaBean內(nèi)容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/xiao-ao-jiang-hu/p/15351963.html