全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2110
推到 Plurk!
推到 Facebook!

Exception in thread "main" java.lang.ClassCastExce

尚未結案
chenglovebun
一般會員


發表:15
回覆:16
積分:6
註冊:2004-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-26 23:28:26 IP:69.114.xxx.xxx 未訂閱
import java.util.*;     public class Betles{       static Process p;       static  Memoryfree m;        public static void main(String[]args){          Vector band= new Vector();          p= new Process (5 ,4);          band.add(p);          Memoryfree m= new Memoryfree("5",5);          band.add(m);          p= new Process (10 ,4);          band.add(p);          for (int j= 0; j
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-27 00:16:09 IP:61.56.xxx.xxx 未訂閱
第一點.請別忘了用[code ]...[/code ]的方式包你的程式碼.沒有排縮看了會很累 第二點.你的
 p= new Process (5 ,4);
 band.add(p); <----第0個元素是process 類別物件
 Memoryfree m= new Memoryfree("5",5);
 band.add(m); <----第1個元素是MemoryFree 類別物件
當然會在日後的 "(((Process)band.get(j)).getId()" 發生型別轉換的錯誤 所以我建議你這兩個類別都要先設計好一個介面,姑且先叫做ID介面
 interface ID_Intf {
  String getId();
 }
 Class Process implements ID_Intf{
    ...
    ..
    String getId(){....}
 }
 Class Memoryfreeimplements ID_Intf{
    ...
    ..
    String getId(){....}
 }
原先的"(((Process)band.get(j)).getId()" 就可以用(((ID_Intf)band.get(j)).getId() 的方式去呼叫getId的方式 (如果你的MemoryFree類別不打算有getId函數的話, 那就要考慮這樣
 Object obj=band.get(j);
 if(obj instanceof Process){
   ((Process)obj).getId();//這樣是可以的
 }else if(obj instanceof ...){
  ....
 }
當然"型別認定"不是個好的設計模式.姑不而將才這樣做,儘量抽象化日後才好擴充
chenglovebun
一般會員


發表:15
回覆:16
積分:6
註冊:2004-10-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-27 02:51:08 IP:69.114.xxx.xxx 未訂閱
非常感謝 又多學如何實用interface 但第這一點我不明白 ."請別忘了用[code ]...[/code ]的方式包你的程式碼.沒有排縮看了會很累" 如何做呢 免的下一次又再犯
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-27 07:31:43 IP:61.56.xxx.xxx 未訂閱
引言: 非常感謝 又多學如何實用interface 但第這一點我不明白 ."請別忘了用[code ]...[/code ]的方式包你的程式碼.沒有排縮看了會很累" 如何做呢 免的下一次又再犯
在發言的介面,"格式"那排不是有些按鈕嗎?其中"#"那個按鈕按下去之後就會出現"[code ][/code ]" 你再插入你的code就可以了
系統時間:2024-04-28 3:21:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!