隨筆 - 0, 文章 - 75, 評論 - 0, 引用 - 0
          數(shù)據(jù)加載中……

          關于java的instanceof關鍵字

          有人說instanceof這個java關鍵字沒必要存在了,不過本人在實際項目中真正的應用過;

          instanceof是java的二元操作符,是判斷關鍵字左邊對象是否是右邊類的實例,然后返回一個布爾類型的結(jié)果;先看如下例子:


          public static void main(String[] args) {

          Integer value = 0;
           
          if(value instanceof Object){
           
          System.out.println("Integer is
          Object!");
            }else{

            System.out.println("Integer is not
          Object!");
            }

          }

          看這段代碼,如果還不了解instanceof這個關鍵字也能猜出應該打印出“Integer is
          Object!
          ”;那instanceof是如何判斷的呢;

          現(xiàn)在思考一下多態(tài)的概念,一個事物或?qū)嵗卸喾N形態(tài),顯然一個Integer的實例同時也可以成為它是Object類型的,所以value是Object沒錯;那我們再來看看接口是不是也一樣可以這樣用呢:


          public static void main(String[] args) {

          List list = new ArrayList();

          if(list instanceof
          java.util.Collection){
           
          System.out.println("List is
          Collection!");
           
          }else{
             
          System.out.println("List is not Collection!");

          }
          }


          現(xiàn)在定義了一個List接口對象,應用向上轉(zhuǎn)型指向的ArrayList的實例;然后看list是否是java.util.Collection呢,我們知道Collection是線性集合的父接口,所以結(jié)果應該是“List is Collection!”;

          綜上,無論類還是接口都可以用instanceof這個關鍵字來判斷,其實是不是也可以把這個關鍵字理解為多態(tài)的一個應用呢?

          posted on 2012-04-22 15:13 hantai 閱讀(323) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 庆城县| 楚雄市| 鄯善县| 密山市| 泊头市| 陇南市| 新龙县| 娱乐| 定陶县| 宜川县| 专栏| 宜城市| 普宁市| 阿合奇县| 安图县| 扎鲁特旗| 兰西县| 平谷区| 乌鲁木齐市| 泗阳县| 盱眙县| 肥乡县| 涪陵区| 铁岭市| 葵青区| 天长市| 蛟河市| 广安市| 高安市| 花莲市| 宝丰县| 格尔木市| 宁国市| 林周县| 科技| 江山市| 安丘市| 那坡县| 城口县| 萨迦县| 顺平县|