国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

學習筆記:因為java匿名類學習到接口的一些小用法

2019-11-15 01:17:07
字體:
供稿:網(wǎng)友
學習筆記:因為java匿名類學習到接口的一些小用法在看CometD的示例代碼時發(fā)現(xiàn)了許多有意思的代碼,但說實話看別人的代碼確實是件很累的事情,所以就看到這個知識點做一下記錄吧。先看一段代碼:代碼1這段代碼中有一個new的操作,而且是在方法參數(shù)中進行的,這給了我一個好奇的點。此時首先想到的是C#中的匿名類,于是網(wǎng)上找了找資料,確實是類似的語法特性。繼續(xù)看代碼就發(fā)現(xiàn)一個問題:ConfigurableServerChannel是一個接口,而且Initializer是ConfigurableServerChannel中的一個內(nèi)部嵌套接口。代碼2這就有另一個問題,接口怎么就可以實例化呢?還是代碼1中的代碼,發(fā)現(xiàn)其實例化時是直接包含了一段實現(xiàn),并且實現(xiàn)了configureChannel方法。這就說明直接實現(xiàn)了一個類來繼承Initializer接口。這里匿名類就顯身了。也就是說代碼看起來是在實例化一個接口,實際上是通過匿名類的機制實現(xiàn)了一個類,并且動態(tài)創(chuàng)建這個匿名類的實例。這樣寫的好處是很明顯的,使用接口來約定,在具體使用時再實際使用業(yè)務代碼。這樣做代碼也精簡了許多,不需要創(chuàng)建一堆的java代碼單元。但如果類需要具名且重復使用的話那么就不太適合使用這種做法,否則會產(chǎn)生許多重復的代碼。在看代碼的時候?qū)W到另一個知識,就是原來接口里也可以有實現(xiàn),看代碼2中的Persistent靜態(tài)類是直接繼承實現(xiàn)了Initializer接口。這種寫法第一次見,想了半天也沒太明白怎么回事。于是寫個例子自己跑跑看:代碼3上面的代碼運行的結(jié)果如下:I am object instance: AI am StaticClass: B我了個去,好吧,有點不淡定了。原來靜態(tài)類也可以實例化!!!!!!為了確認此問題我把StaticClass的的static給去掉,運行的結(jié)果是一樣的,那么我就不知道這個static有什么具體作用呢?這個有時間再研究研究吧。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 铁岭县| 东乡族自治县| 城固县| 专栏| 环江| 柞水县| 礼泉县| 揭西县| 勃利县| 怀远县| 石景山区| 深圳市| 台南县| 湘乡市| 开江县| 墨竹工卡县| 繁峙县| 新巴尔虎左旗| 宣武区| 台湾省| 沅陵县| 军事| 南澳县| 吕梁市| 大荔县| 淮南市| 许昌县| 雅安市| 铜梁县| 利津县| 吴堡县| 顺义区| 平凉市| 呈贡县| 喜德县| 泗水县| 静海县| 玉环县| 乐山市| 同德县| 长治市|