Re: [問題] cast Vector<T>
: 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)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):