隨筆 - 0, 文章 - 75, 評論 - 0, 引用 - 0
          數據加載中……

          關于java的instanceof關鍵字

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

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


          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是如何判斷的呢;

          現在思考一下多態的概念,一個事物或實例有多種形態,顯然一個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!");

          }
          }


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

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

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


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


          網站導航:
           
          主站蜘蛛池模板: 灵宝市| 府谷县| 左权县| 甘德县| 罗定市| 唐海县| 玉环县| 揭阳市| 茂名市| 中山市| 皋兰县| 绿春县| 南溪县| 江口县| 通州区| 泾川县| 玛曲县| 平果县| 老河口市| 郴州市| 大田县| 甘德县| 鄂州市| 泊头市| 宣汉县| 金门县| 麟游县| 东山县| 息烽县| 武川县| 南漳县| 武山县| 海丰县| 察隅县| 龙南县| 泽普县| 高尔夫| 娱乐| SHOW| 西吉县| 丰原市|