1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
import java.util.ArrayList;
import java.util.List;
public class ItemList {
abstract class Item {
int index;
void showItem() {
System.out.println(getClass().getSimpleName()+" index = "+ index);
}
}
class Item1 extends Item {}
class Item2 extends Item {}
List<Item> itemList=new ArrayList<Item>();
public ItemList() {
for (int i=0;i<100;i++) {
Item item;
item = i%2==0 ? new Item1() : new Item2();
item.index=i;
itemList.add(item);
}
}
public <T extends Item> List<T> getList(Class<T> t) {
List<T> listT=new ArrayList<T>();
for (Item item: this.itemList) {
if (t.isInstance(item)) {
listT.add((T)item);
}
}
return listT;
}
public <T extends Item> void showItem(Class<T> t) {
for (Item item : getList(t)) {
item.showItem();
}
}
public static void main(String args[]) {
ItemList itemList=new ItemList();
itemList.showItem(Item1.class);
itemList.showItem(Item2.class);
}
} |
Partager