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

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

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

          instanceof是java的二元操作符,是判斷關(guān)鍵字左邊對(duì)象是否是右邊類的實(shí)例,然后返回一個(gè)布爾類型的結(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類型的,所以value是Object沒錯(cuò);那我們?cè)賮砜纯唇涌谑遣皇且惨粯涌梢赃@樣用呢:


          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是線性集合的父接口,所以結(jié)果應(yīng)該是“List is Collection!”;

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

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 青冈县| 行唐县| 扎赉特旗| 永靖县| 读书| 洪洞县| 南漳县| 兴安县| 仁怀市| 微博| 宽甸| 外汇| 海宁市| 卓资县| 林西县| 同仁县| 山东| 西和县| 横山县| 渝北区| 明光市| 延安市| 华安县| 宜君县| 衡南县| 榆社县| 兴业县| 读书| 徐闻县| 镇安县| 桐乡市| 涟源市| 银川市| 兴隆县| 梁平县| 新兴县| 宁明县| 茶陵县| 嘉义县| 高阳县| 太和县|