java 中使用匿名類直接new接口詳解及實(shí)例代碼
java:使用匿名類直接new接口
java中的匿名類有一個(gè)倍兒神奇的用法,見下面代碼示例:
package contract; public interface ISay { void sayHello(); }
上面是一個(gè)簡單的接口,下面是如何使用:
package jimmy; import contract.ISay; public class Program { public static void main(String[] args) { ISay say = new ISay() { public void sayHello() { System.out.println("Hello java!"); } }; } }
初看上去,就好象在“不提供接口實(shí)現(xiàn)的情況下,直接new了一個(gè)接口實(shí)例”,對于C#er來說,有一種盡毀三觀的趕腳。
還好這只是假象,觀察bin目錄下的class輸出,會發(fā)現(xiàn)有一個(gè)類似Program1.class的文件,如果反編譯觀察一下,發(fā)現(xiàn)原來是編譯器自動生成一個(gè)類Program1.class的文件,如果反編譯觀察一下,發(fā)現(xiàn)原來是編譯器自動生成一個(gè)類Program1:
package jimmy; import contract.ISay; import java.io.PrintStream; class Program$1 implements ISay { public void sayHello() { System.out.println("Hello java!"); } }
如果有些場合,只需要臨時(shí)需要創(chuàng)建一個(gè)接口的實(shí)現(xiàn)類,上面的"技巧"可以用來簡化代碼.
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Java通過匿名類來實(shí)現(xiàn)回調(diào)函數(shù)實(shí)例總結(jié)
- Java中匿名類的兩種實(shí)現(xiàn)方式
- java 內(nèi)部類(匿名類,匿名對象,靜態(tài)內(nèi)部類)詳解及實(shí)例
- 全面了解Java中的內(nèi)部類和匿名類
- Java通過接口實(shí)現(xiàn)匿名類的實(shí)例代碼
- 簡單談?wù)刯ava中匿名內(nèi)部類構(gòu)造函數(shù)
- java匿名內(nèi)部類實(shí)例簡析
- java中匿名內(nèi)部類詳解
- Java匿名對象與匿名內(nèi)部類
- Java匿名類,匿名內(nèi)部類實(shí)例分析
相關(guān)文章
簡單了解Spring Cloud Alibaba相關(guān)知識
這篇文章主要介紹了簡單了解Spring Cloud Alibaba相關(guān)知識,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10利用Java簡單實(shí)現(xiàn)一個(gè)代碼行數(shù)統(tǒng)計(jì)器方法實(shí)例
這篇文章主要給大家介紹了關(guān)于如何利用Java簡單實(shí)現(xiàn)一個(gè)代碼行數(shù)統(tǒng)計(jì)器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Java中過濾器、監(jiān)聽器和攔截器的區(qū)別詳解
這篇文章主要介紹了Java中過濾器、監(jiān)聽器和攔截器的區(qū)別詳解,有些朋友可能不了解過濾器、監(jiān)聽器和攔截器的區(qū)別,本文就來詳細(xì)講一下,相信看完你會有所收獲,需要的朋友可以參考下2024-01-01String類下compareTo()與compare()方法比較
這篇文章主要介紹了String類下compareTo()與compare()方法比較的相關(guān)資料,需要的朋友可以參考下2017-05-05