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

          關(guān)于java的instanceof關(guān)鍵字

          有人說(shuō)instanceof這個(gè)java關(guān)鍵字沒(méi)必要存在了,不過(guò)本人在實(shí)際項(xiàng)目中真正的應(yīng)用過(guò);

          instanceof是java的二元操作符,是判斷關(guān)鍵字左邊對(duì)象是否是右邊類(lèi)的實(shí)例,然后返回一個(gè)布爾類(lèi)型的結(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這個(gè)關(guān)鍵字也能猜出應(yīng)該打印出“Integer is
          Object!
          ”;那instanceof是如何判斷的呢;

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


          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)在定義了一個(gè)List接口對(duì)象,應(yīng)用向上轉(zhuǎn)型指向的ArrayList的實(shí)例;然后看list是否是java.util.Collection呢,我們知道Collection是線(xiàn)性集合的父接口,所以結(jié)果應(yīng)該是“List is Collection!”;

          綜上,無(wú)論類(lèi)還是接口都可以用instanceof這個(gè)關(guān)鍵字來(lái)判斷,其實(shí)是不是也可以把這個(gè)關(guān)鍵字理解為多態(tài)的一個(gè)應(yīng)用呢?

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


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 仁寿县| 康马县| 尉氏县| 苍梧县| 阳谷县| 兴国县| 科尔| 祁阳县| 家居| 钟祥市| 海晏县| 道真| 交口县| 抚州市| 垦利县| 朝阳市| 罗江县| 大竹县| 玉屏| 苍山县| 浮梁县| 香河县| 海淀区| 城步| 平凉市| 那曲县| 宁波市| 盐城市| 手机| 砚山县| 伊金霍洛旗| 旌德县| 彰化市| 遂川县| 班玛县| 呼伦贝尔市| 临沭县| 会理县| 永年县| 东宁县| 沐川县|