解析MapStruct轉換javaBean時出現的詭異事件

在項目中用到瞭MapStruct,對其可以轉換JavaBean特別好奇,因為之前都是使用Vo的方式手動set轉換,但是接觸到MapStruct後感覺以前使用Vo的方式確實有點low

於是就想著去看一下,寫瞭個demo。於是這詭異的時間就開始瞭

我得代碼如下:

這是pom文件

這是我的兩個javaBean

大傢可以看到那個發灰的序列化接口,那是因為我再運行出結果是轉換後的JavaBean屬性為空,我以為是序列化時導致的所以我去掉瞭,

可是後來發現完全不是這個原因

這是我的mapper轉換類

還有我的啟動執行類

正確的運行結果應該是這樣的

現在我的運行結果是

這讓我挺懵X的,於是我查瞭好多大佬的博客,都說在pom中添加 “maven-compiler-plugin” 的配置就可以解決於是我配置瞭

如下:

那灰色的是看到有的大佬說的這麼配置,之前我的maven-compiler-plugin是3.8版本的,跟著大佬的隻是做成瞭現在的樣子,但是好像還是沒什麼用,

運行之後屬性就是空的,我嘗試maven-clean和maven-instell在我大量的嘗試中我突然發現在install之後修改那個轉換的方法名之後就可以轉換成功,屬性也有瞭值,

我通過debug方式去看瞭執行過程中,在我沒有改方法名之前mapper的實現類中沒有生成set方法,但是我改瞭之後就會生成set方法,這也是導致屬性為null的直接原因。

我嘗試瞭好多的方法,看瞭好多的資料也沒想明白,為什麼會出現這樣的問題,苦惱》》》啊!!

我就是在打包後改瞭這個方法

隻要改動一下這個構造方法就可以實現。。

求大佬解惑,什麼原因啊

到此這篇關於MapStruct轉換javaBean時出現的詭異事件的文章就介紹到這瞭,更多相關MapStruct轉換javaBean內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: