Discussion:
如何判斷Vector取出來的物件類型?
(时间太久无法回复)
小永
2006-11-02 14:54:11 UTC
Permalink
請問一下,我建立了一個Vector
裡面存了三四種不同class的物件
每種物件要作的事不同
有沒有辦法建立一個判斷式,自動判別然後執行嗎?
--
 ▊▊█ ▊▊█  ██ 
 靜宜大學 水世界   Υ ● ▊▊█ ▊▊█  ██ 
 bbs.cs.pu.edu.tw  ◢██◣ ◥◥◤ ◥◥◤  ██
 140.128.9.94 ﹋﹌﹏█⊙██◣◢﹏﹋﹌﹏ ██
※ 飄流自 :218-162-176-249.dynamic.hinet.net
台大資男喲
2006-11-02 11:46:43 UTC
Permalink
※ 引述《***@bbs.cs.pu.edu.tw (小永)》之銘言:
: 請問一下,我建立了一個Vector
: 裡面存了三四種不同class的物件
: 每種物件要作的事不同
: 有沒有辦法建立一個判斷式,自動判別然後執行嗎?

試試看

if(yourObject instanceof SomeClass){
....
}else if(anotherObject instanceof AnotherClass){
....
}...

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.209.43
godfat 真常
2006-11-02 11:52:31 UTC
Permalink
※ 引述《***@bbs.cs.pu.edu.tw (小永)》之銘言:
: 請問一下,我建立了一個Vector
: 裡面存了三四種不同class的物件
: 每種物件要作的事不同
: 有沒有辦法建立一個判斷式,自動判別然後執行嗎?

動態多形不好嗎?

class Base{
public void todo(){}
}

class DerivedA extends Base{
public void todo(){}
}
class DerivedB extends Base{
public void todo(){}
}

// ...

Vector<Base> v;

// ...

v.elementAt(0).todo();
v.elementAt(3).todo();

--
Nobody can take anything away from him.
Nor can anyone give anything to him.

What came from the sea,
has returned to the sea.
Chrono Cross

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.232.3.15
小永
2006-11-03 10:19:09 UTC
Permalink
Post by 台大資男喲
: 請問一下,我建立了一個Vector
: 裡面存了三四種不同class的物件
: 每種物件要作的事不同
: 有沒有辦法建立一個判斷式,自動判別然後執行嗎?
試試看
if(yourObject instanceof SomeClass){
....
}else if(anotherObject instanceof AnotherClass){
....
}...
試過可以成功了,多謝^^
多謝另一個大大提供的方法,
不過這個方法比較接近我原始的想法
看書上面都沒有講到這個用法instanceof
真是多謝了
--
 ▊▊█ ▊▊█  ██ 
 靜宜大學 水世界   Υ ● ▊▊█ ▊▊█  ██ 
 bbs.cs.pu.edu.tw  ◢██◣ ◥◥◤ ◥◥◤  ██
 140.128.9.94 ﹋﹌﹏█⊙██◣◢﹏﹋﹌﹏ ██
※ 飄流自 :behappy.cs.pu.edu.tw
小永
2006-11-03 17:19:12 UTC
Permalink
Post by 小永
試過可以成功了,多謝^^
多謝另一個大大提供的方法,
不過這個方法比較接近我原始的想法
看書上面都沒有講到這個用法instanceof
真是多謝了
雖然說接近原始的想法是好事
不過這東東還有二三種解法呢:P
我是打算用Vector管理一連續物件,
幾乎都是資料的類別,像是
教師、學生、轉學生 ...etc

每個類別裡面有資料相同,有些不一樣
建立好之後可以依序捉出裡面的資料來使用

之前都是使用同一類別的東西,所以沒有發現問題
最近加入了其它類別才發現
不同類別的物件需要對應不同的資料呈現方式
因此在執行的時候就產生錯誤(資料型態不符)

因為己經累積了不少程式碼,
如果要重新改寫的話
實在是一件很頭痛的事情 >"<

--
 ▊▊█ ▊▊█  ██ 
 靜宜大學 水世界   Υ ● ▊▊█ ▊▊█  ██ 
 bbs.cs.pu.edu.tw  ◢██◣ ◥◥◤ ◥◥◤  ██
 140.128.9.94 ﹋﹌﹏█⊙██◣◢﹏﹋﹌﹏ ██
※ 飄流自 :218-162-176-249.dynamic.hinet.net
继续阅读narkive:
Loading...