日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java 鲜为人知的知识点_鲜为人知的Java 8功能:广义目标类型推断

發(fā)布時(shí)間:2023/12/3 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 鲜为人知的知识点_鲜为人知的Java 8功能:广义目标类型推断 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java 鮮為人知的知識(shí)點(diǎn)

遍歷Java 8的功能列表 , 廣義目標(biāo)類型推斷使我震驚,因?yàn)樗且粋€(gè)特別有趣,鮮為人知的瑰寶。 看起來Java語言設(shè)計(jì)人員將減輕過去使用泛型(Java 5-7)時(shí)遇到的某些痛苦。 讓我們看看他們的例子:

class List<E> {static <Z> List<Z> nil() {..}static <Z> List<Z> cons(Z head, List<Z> tail) {..}E head() {..} }

給定以上示例,JEP 101功能聲稱能夠編寫以下代碼會(huì)很好:

// This: List.cons(42, List.nil()); String s = List.nil().head();// ... instead of this: List.cons(42, List.<Integer>nil()); String s = List.<String>nil().head();

我自己是一名熟練的API設(shè)計(jì)師 ,我很高興看到這樣的改進(jìn)正在發(fā)展中,尤其是后者。 這些變化有什么激動(dòng)人心的? 讓我更詳細(xì)地評(píng)論一下:

// In addition to inferring generic types from // assignments List<String> l = List.nil();// ... it would be nice for the compiler to be able // to infer types from method argument types List.cons(42, List.nil());// ... or from "subsequent" method calls String s = List.nil().head();

因此,在方法被鏈接的最后一個(gè)示例中,類型推斷將被延遲,直到整個(gè)賦值表達(dá)式已被求值。 從分配的左側(cè),編譯器可以推斷<Z>綁定到head()調(diào)用上的String 。 然后可以再次使用此信息來推斷<Z>在nil()調(diào)用中再次綁定到String 。

對(duì)我來說,這聽起來像是很麻煩的事情,因?yàn)樾枰舆tnil()調(diào)用的AST評(píng)估,直到評(píng)估“依賴”子AST為止。 這是一個(gè)好主意嗎?

是的,這太棒了!

……你可能會(huì)想。 因?yàn)榭梢砸愿恿鲿车臉邮絹碓O(shè)計(jì)流暢的API,例如jOOQ或Streams API,所以將類型推斷推遲到調(diào)用鏈的末尾。

因此,我下載了JDK 8的最新評(píng)估版,以使用以下程序?qū)Υ诉M(jìn)行測(cè)試:

public class InferenceTest {public static void main(String[] args) {List<String> ls = List.nil();List.cons(42, List.nil());String s = List.nil().head();} }

我編譯了這個(gè),然后得到了:

C:\Users\Lukas\java8>javac InferenceTest.java InferenceTest.java:5: error: incompatible types: Object cannot be converted to StringString s = List.nil().head();^ 1 error

因此,實(shí)現(xiàn)了基于方法參數(shù)類型的類型推斷(并因此進(jìn)行了編譯),但沒有實(shí)現(xiàn)鏈?zhǔn)椒椒ㄕ{(diào)用的類型推斷。 我在互聯(lián)網(wǎng)上搜索了一個(gè)解釋,發(fā)現(xiàn)此Stack Overflow問題鏈接到lambda-dev郵件列表上的此有趣線程 。

看來Java類型系統(tǒng)已經(jīng)變得相當(dāng)復(fù)雜。 太復(fù)雜,無法實(shí)現(xiàn)這種瘋狂的類型推斷。 但是,仍然需要進(jìn)行一些細(xì)微的改進(jìn),這在每天編寫Java 8代碼時(shí)將非常有價(jià)值。

也許在Java 9中,我們將像其他所有人一樣獲得val和var !

參考: 鮮為人知的Java 8功能:來自我們的JCG合作伙伴 Lukas Eder在JAVA,SQL和JOOQ博客上的廣義目標(biāo)類型推斷 。

翻譯自: https://www.javacodegeeks.com/2013/11/a-lesser-known-java-8-feature-generalized-target-type-inference.html

java 鮮為人知的知識(shí)點(diǎn)

總結(jié)

以上是生活随笔為你收集整理的java 鲜为人知的知识点_鲜为人知的Java 8功能:广义目标类型推断的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 大黄一级片 | 精品一二三区 | 极品国产白皙 | 91天堂视频| 中文字幕――色哟哟 | 久久久99精品免费观看 | 国产 日韩 欧美 成人 | 亚洲一区欧美日韩 | 免费中文字幕av | 国产外围在线 | 成人av黄色 | 中文字幕国产综合 | 人妻一区二区视频 | 国产成人精品一区二区三区 | 国内精品久久久久久久久 | 久久丁香网 | 狠狠干网站 | 最新av女优| √天堂8资源中文在线 | 黄色小视频国产 | 在线观看麻豆 | 91官网在线 | 北岛玲av在线 | 高清三区 | 亚洲人成色777777精品音频 | 欧美性xxxxxxxxx | 精品一区二区三区无码按摩 | 欧美日韩黄色网 | 99视频观看| 中文资源在线观看 | 看全黄大色黄大片美女人 | 麻豆疯狂做受xxxx高潮视频 | 老女人性生活视频 | 美女无遮挡网站 | 成人片在线播放 | 日韩乱码人妻无码中文字幕 | 超级砰砰砰97免费观看最新一期 | 天天鲁| 免费看h网站 | 国产这里只有精品 | 亚洲奶水xxxx哺乳期 | 亚洲少妇15p | 欧美交换配乱吟粗大25p | 天堂av2014| 在线不卡日韩 | 自拍一级片 | 中文字幕+乱码+中文乱码91 | 国产欧美精品一区 | 欧美日韩国产精品一区 | 日韩电影在线观看一区二区 | 在线观看的av网址 | 99在线视频观看 | 韩日激情视频 | a级一级黄色片 | 在线观看涩涩 | 精品一区二区日韩 | a级黄色一级片 | 乱子伦一区二区三区 | 欧美激情一区在线 | 欧美大波大乳巨大乳 | 中文字幕av久久 | 免费黄色网址观看 | av无码av天天av天天爽 | 91精品国产综合久久福利 | 在线免费黄色 | 超碰日本 | 亚洲区小说区图片区qvod | 永久免费av无码网站性色av | a级片网站| 欧美色吊丝 | 国产美女www爽爽爽视频 | 欧美激情精品 | 国产三级在线观看视频 | 欧美一级生活片 | 亚洲欧美综合一区二区 | 亚洲综合激情网 | 又紧又大又爽精品一区二区 | 96国产精品| 成人久久18免费网站图片 | 三年中文在线观看中文版 | 精品少妇一区二区三区在线观看 | 国产女人18水真多18精品一级做 | 校花被c到呻吟求饶 | 亚洲作爱 | 国产精品不卡在线观看 | 午夜试看120秒 | 三级黄网站| 快色污| 泰坦尼克号3小时49分的观看方法 | 亚洲色图35p | 在线激情网站 | 日韩亚洲精品在线 | 亚洲成人婷婷 | 日本中文在线播放 | 国产a级大片 | 精品小视频在线观看 | 污污污污污污www网站免费 | 黄色一级视屏 | 强迫凌虐淫辱の牝奴在线观看 |