新聞中心
雖然關(guān)于Java 7閉包一直波瀾不斷,開(kāi)發(fā)者們也對(duì)Java是否真的需要引入閉包存在爭(zhēng)議,但Oracle還是在兩天前放出了Java 7閉包的第一個(gè)版本。我們可以在測(cè)試項(xiàng)目中看到Java編譯器語(yǔ)法規(guī)則的演變。點(diǎn)此查看測(cè)試項(xiàng)目。

成都創(chuàng)新互聯(lián)是一家專(zhuān)注于成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),臨西網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:臨西等地區(qū)。臨西做網(wǎng)站價(jià)格咨詢(xún):18982081108
Oracle發(fā)布的最新版本有以下功能更新:
◆函數(shù)類(lèi)型語(yǔ)法
◆函數(shù)類(lèi)型的子類(lèi)型
◆全面支持Lambda表達(dá)式
◆在lambda中對(duì)thrown/return類(lèi)型的引用
在Oracle的更新說(shuō)明中顯示,這里所提到的函數(shù)類(lèi)型在默認(rèn)情況下不會(huì)啟動(dòng),必須使用XDallowFunctionTypes來(lái)啟用。以下為示例:
type1,lambda表達(dá)式:
- int i1 = #()(3).(); //i1 = 3
- Integer i2 = #()(3).(); //i2 = 3
- int i3 = #(int x)( x + 1 ).(3); //i3 = 4
- int i4 = #(Number x)(x.intValue()).(new Float(3.0f)); //i4 = 3
type2
- int i1 = #(){ return 3; }.(); //i1 = 3
- Integer i2 = #(){ return 3; }.(); //i2 = 3
- int i3 = #(int x){ return x + 1; }.(3); //i3 = 4
- int i4 = #(Number x){ return x.intValue(); }.(new Float(3.0f)); //i4 = 3
關(guān)于Java閉包
支持閉包的多數(shù)語(yǔ)言都將函數(shù)作為第一級(jí)對(duì)象,就是說(shuō)這些函數(shù)可以存儲(chǔ)到變量中、作為參數(shù)傳遞給其他函數(shù),最重要的是能夠被函數(shù)動(dòng)態(tài)地創(chuàng)建和返回。對(duì)于Java是否應(yīng)該引入閉包特性一直存在爭(zhēng)議,詳細(xì)請(qǐng)參考《百家爭(zhēng)鳴 Java需要引入閉包嗎?》。去年曾報(bào)道《Java 7決定包含閉包 發(fā)布日期推遲至2010年底》的消息,在Devoxx 2009上已基本確定在Java 7中對(duì)閉包的引入。
關(guān)于Java 7閉包的詳細(xì)介紹請(qǐng)參考《Java 7的第一類(lèi)函數(shù):學(xué)習(xí)閉包的使用》。
原文:Java 7 : Oracle pushes a first version of closures
鏈接:http://www.baptiste-wicht.com/2010/05/oracle-pushes-a-first-version-of-closures/
網(wǎng)站題目:Oracle推出首個(gè)Java7閉包版本
標(biāo)題來(lái)源:http://m.fisionsoft.com.cn/article/djijijh.html


咨詢(xún)
建站咨詢(xún)
