簡述
在項(xiàng)目實(shí)戰(zhàn)中甘改,漸漸的遇到了很多問題歼培,主要出現(xiàn)在java中調(diào)用kotlin封裝的高級函數(shù)嘴办,以及委托屬性等。本來是想把以前的經(jīng)驗(yàn)積累全部轉(zhuǎn)到kotlin上乾巧,再加一些改進(jìn)就準(zhǔn)備當(dāng)基礎(chǔ)工程依賴使用句喜。可沒想到在老的項(xiàng)目中沟于,也就是在java中調(diào)用kotlin的封裝藤滥,簡直就是給自己找刺激,完全不符合編碼規(guī)范社裆,更加不符合封裝原則∽景恚現(xiàn)在已經(jīng)懷疑官方所說的支持混合開發(fā),看來也只是支持泳秀,并非是上策标沪。下面舉兩個例子
BaseAdapter - kotlin源碼
很喜歡這種風(fēng)格是吧,很簡單嗜傅,先看看在kotlin中的調(diào)用方式金句,咱們比對一下
kotlin調(diào)用,看代碼很簡介是吧吕嘀,可以使用lambda表達(dá)式
java調(diào)用违寞,什么鬼,什么┏┛墓┗┓...(((m -__-)m偶房, 看了Function2源碼 其實(shí)就是個接口趁曼,相當(dāng)與你在adapter中寫了個接口回掉。Unit 是kotlin中的對象棕洋,相當(dāng)于java的void挡闰,這樣用很不符合命名規(guī)范,
SharedPreferences - kotlin源碼
這個例子也很 典型,學(xué)幾天的人應(yīng)該都遇到了摄悯,而且會被它的調(diào)用方法所吸引赞季,當(dāng)時的心情就是怎么可以這樣簡單,如下在kotlin中調(diào)用方式奢驯,真是爽翻了申钩。
可你想過在java中使用嗎?你確定能用嗎這個封裝瘪阁。來實(shí)驗(yàn)下
似乎只有 getPrefs方法能用典蜕,再看看具體存一個的調(diào)用
你敢這么用嗎?一個工作了四五年的程序員罗洗,你敢這么寫嗎愉舔?哈哈,這封裝完全就不能使用伙菜。也許改造下會好一點(diǎn)轩缤,但還是不能勝任。
總結(jié)
結(jié)論很簡單贩绕,你要是在java中使用 在kotlin中所謂的高級特性是不可能了火的,能混合開發(fā) 我都不會混合開發(fā),要么完全使用kotlin淑倾,去調(diào)java馏鹤,絕對不用java 去調(diào)kotlin。越來越多的公司嘗試kotlin娇哆,還是多多實(shí)戰(zhàn)下吧湃累,選個折中的方式,可以在相對獨(dú)立的模塊中使用新的語言開發(fā)碍讨。本次就到這治力,去寫接口文檔了- ?-