作者easy1 (e :) y)
站內java
標題[問題] cast Vector<T>
時間Fri Sep 21 07:15:03 2007
class A;
class B extends A;
或是
Interface A;
class B implements A;
Vector<A> vec = new Vector<A>;
for (...) {
B b = new B();
vec.add(b);
}
~
請問 我如何
將 vec 轉成 Vector<B> 型態?
--
PLUR
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 79.210.65.181
1F:推 PsMonkey:囧? 好奇怪的需求阿... Orz 09/21 10:09
2F:推 superlubu:沒有辦法直接做,只能重新宣告一個 Vector<B>,然後將 09/21 10:13
3F:→ superlubu:Vector<A>內的element一個一個的 cast 到 B 再 add 09/21 10:14
4F:推 adrianshum:想轉成 Vector<B> 即是你 vec 都是只放 B, 那麼當初為 09/21 10:43
5F:→ adrianshum:什麼不直接用 Vector<B> ? 09/21 10:44
6F:推 qrtt1:Vector<B> vb = new Vector<B>((Collection)vec); 09/21 15:42
7F:推 psalter:善用Polymorphism(多型)的機制,盡量避免向上轉型 09/21 22:19
8F:推 easy1:後來我想到的方法是用java generics解決 09/24 18:36