作者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