2
我有一個ArrayList
的BagWithRandomSelect
不同類型。所以arrayList.get(1)
可以返回一個BagWithRandomSelect<Integer>
對象,而arrayList.get(2)
可能返回一個BagWithRandomSelect<String>
對象。是否有可能編寫一種方法將BagWithRandomSelect
中的元素作爲自己的類型返回,而不是返回需要投射的Object
?從集合ArrayList中返回一個元素,其中每個集合具有不同的元素類型
我的問題出在方法testGetFromColumn()
:
public class BagWithRandomSelect<E> {
ArrayList<E> bag;
public BagWithRandomSelect() {
this.bag = new ArrayList<>();
}
public void add(E element) {
this.bag.add(element);
}
public E randomSelect() {
Random rnd = new Random();
int rndInt = this.rnd.nextInt(bag.size);
return this.bag.get(rndInt);
}
}
public class DatafileCreator {
ArrayList<BagWithRandomSelect> columnList;
public DatafileCreator() {
this.columnList = new ArrayList<Stack>();
}
// skipping some methods...
public void addNewColumn(BagWithRandomSelect bag, String s) {
this.columnList.add(bag);
}
public Object testGetFromColumn(int columnNum) {
BagWithRandomSelect<Object> bag = this.columnList.get(columnNum);
return bag.randomSelect();
}
}
您是否嘗試過的instanceof? – sAm