groovy使用范型的坑
生活随笔
收集整理的這篇文章主要介紹了
groovy使用范型的坑
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
java的范型
Map<String, Integer> map = new HashMap<>(); map.put("a", 100); map.put(1, 200); // 在編譯期就會報錯上面的代碼在運行時,盡管有類型擦除,但是由于編譯期有類型檢查,map中的<key, value>的類型始終為<String, Integer>,可放心使用。
groovy的范型
public Map<String, Integer> func() {def map = new HashMap<>()map.put('a', 100)map.put(1, 200) // 在編譯期不會報錯map }上面的代碼即使使用了@CompileStatic靜態(tài)編譯注解在編譯期也不會報錯。由于在運行時有類型擦除,所以func返回的Map的<key, value>的數(shù)據(jù)類型是不確定的,key的類型并不一定為String,比如使用map.get('1')來查詢時是獲取不到鍵值對的,這是一個坑點!!!
為了程序的嚴(yán)謹(jǐn),個人建議使用java的強(qiáng)制類型編碼風(fēng)格,且使用@CompileStatic靜態(tài)編譯注解,改寫后的代碼如下。
public Map<String, Integer> func() {Map<String, Integer> map = new HashMap<>()map.put('a', 100)map.put(1, 200) // 在編譯期就會報錯map }轉(zhuǎn)載于:https://www.cnblogs.com/bluesky8640/p/10090257.html
總結(jié)
以上是生活随笔為你收集整理的groovy使用范型的坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 福大软工 · BETA 版冲刺前准备(团
- 下一篇: 18.12.09-C语言练习:兔子繁衍问