1
我有三個類來傳送有界參數:抽象A和兩個B和C,其延伸的A.如何使用方法超級()
class A<T> {
ArrayList<T> someField;
A() {
someField = new ArrayList<T>();
}
ArrayList<T> getSomeField() { return someField; }
}
現在我有B和C
class B<T> extends A {
B() {
super();
}
}
class C<T> extends A{
C() {
super();
}
}
當我嘗試使用B和CI的不同類型的getSomeField時,必須指定它是哪種類型。我的問題是如何將T參數從B類傳遞到A,以避免例如爲每個循環指定ArrayList的類型。如果有可能的話。
例子:
祝:
B obj = new B<T>();
for (T item: B.getSomeField) {
do something
}
我必須:
B obj = new B<T>();
for (T item: (ArrayList<T>)B.getSomefield) {
do something
}
我沒有看到'B'和'C'從'A延伸','A'類都不抽象。 –
您的意思是'B類延伸A '?否則,你正在擴展原始類型。如果你展示一個簡短的*完整的*程序來證明問題,那真的很有幫助。 –