作者easy1 (e :) y)
站内java
标题Re: [问题] cast Vector<T>
时间Fri Sep 21 17:25:31 2007
: class A;
: class B extends A; class C extends A;
: 或是
: Interface A;
: class B implements A; class C implements A;
感谢以上回文 尤其是这个方法 Vector<B> vb = new Vector<B>((Collection)vec);
不过在eclipse会有 "Type safty"的Warning.
javadoc:
Vector(Collection<? extends E> c)
我会这样问可能是我程式没设计好吧
(承以上的例子)
主要是
abstract class X {
protected Vector<A> foo() {
return make();
}
protected abstarct Vector<A> make();
}
class Y extends X {
public Vector<B> myFoo() {
Vecotr<A> vec = this.foo();
return new Vector<B>((Collection)vec);
}
protected Vector<A> make() {
Vector<A> vec = new Vector<A>;
for (...) {
B b = new B();
vec.add(b);
}
return vec;
}
}
class Z extends X {
public Vector<C> myFoo() {
Vecotr<A> vec = this.foo();
return new Vector<C>((Collection)vec);
}
protected Vector<A> make() {
Vector<A> vec = new Vector<A>;
for (...) {
C c = new (C);
vec.add(c);
}
return vec;
}
}
--
PLUR
※ 编辑: easy1 来自: 79.210.123.246 (09/21 17:52)
※ 编辑: easy1 来自: 79.210.123.246 (09/21 17:54)
※ 编辑: easy1 来自: 79.210.123.246 (09/21 18:01)