作者LPH66 (-858993460)
看板java
標題Re: [問題] instanceof與Class.forName結果不同
時間Thu Mar 24 21:47:35 2011
※ 引述《Schatze (吃哈吱)》之銘言:
: 因為推文一行要等60秒, 先詳細解釋一下~
: 這個com.test.A是一個interface,
: class[]裡是所有實作com.test.A的class.
: 但是裡面有一個class會引起
: if( class[i] instanceof com.test.A )
: 出現錯誤訊息 : inconvertible types
: 所以希望這個引起錯誤訊息的class能夠
: 在if( class[i] instanceof com.test.A )裡面
: 做判斷時return false. 或是該怎麼在使用
: 上面的條件判斷式時, 強制使用try..catch
: 小弟是java新手, 麻煩大家多指點~
inconvertible types 只會在 compile time 出現
這代表 javac 發現了 class[i] 的型態和 com.test.A 是不可能互轉的
所以告訴你這裡有問題
這只會發生在 class[i] 的型態和 com.test.A 是處在繼承樹的兩個不相關的分支
(例如 java.lang.Integer 和 java.util.Scanner 這樣什麼關係都沒有的兩個 class)
所以為什麼推文會問你程式裡的 class[] 是什麼型態就是這樣
或許你可以把出問題的 function 貼上來會比較好抓問題
--
話說回來 class 是保留字耶...你到底是怎麼寫的?!
--
◢ ˊ_▂▃▄▂_ˋ. ◣ ▅▅ ▅▅ ι●╮ █
▄▄▄▄▄
▍
./◤_▂▃▄▂_◥ \'▊ HARUHI █████ <■┘ ▄▄▄▄▄▄▄
▎
⊿ ◤◤◥█◥◥█Δ ISM By-gamejye ¢|\ ▌▌▌▌▌▄▌▌
▏
ζ(▏●‵◥′●▊)Ψ ▏ █
⊿Δ ▄▄▄ ▄▄▄▄
█/|▊ 〃 、 〃▋ |\ ▎ ハルヒ主義 █
▄▄▄█▄▄
◥◥|◣ ‵′ ◢/'◢◢
S.O.S 世界を大いに盛り上げるための涼宮ハルヒの団
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.28.92
推 slalala:我覺得他可能是class[i]=com.test.A.class 03/24 22:07
推 Schatze:哈哈~原本是class_pool[] 只是方便識別寫成class 03/24 22:56
→ Schatze:謝謝您的指點,我這部份可能沒檢查仔細.我再去看一遍,真的 03/24 22:59
→ Schatze:解不開時再貼過來請各位指點~ 03/24 23:01
推 slalala:u的錯了阿 型別不能是class啦 03/24 23:26