Exception in thread "main" java.lang.ClassCastExce |
尚未結案
|
chenglovebun
一般會員 發表:15 回覆:16 積分:6 註冊:2004-10-02 發送簡訊給我 |
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 發送簡訊給我 |
第一點.請別忘了用[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 發送簡訊給我 |
|
neoart
版主 發表:22 回覆:582 積分:425 註冊:2003-05-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |