国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 浦东新区| 佛坪县| 郯城县| 镇赉县| 浙江省| 金塔县| 尉犁县| 盐亭县| 周宁县| 扶绥县| 晋州市| 淮北市| 永善县| 景东| 淮滨县| 抚松县| 夏邑县| 全椒县| 湖南省| 凤山市| 广水市| 抚州市| 台北县| 津市市| 扶风县| 福州市| 贵南县| 绥化市| 南华县| 彰化市| 福贡县| 赞皇县| 镶黄旗| 广德县| 太仆寺旗| 黄山市| 镇沅| 蒙城县| 德安县| 共和县| 华池县|