Java泛型应用
package myday22;import static org.junit.Assert.*;import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;import org.junit.Test;public class TestFanXing {// 此例子求任何類型的任意集合的最小值//public Comparable minValue(Collection<? extends Comparable> col) {Iterator<? extends Comparable> iterator = col.iterator();Comparable min = iterator.next(); // 先假設第1個最小while (iterator.hasNext()) { // 循環中再嘗試刷新Comparable value = iterator.next();if (value.compareTo(min) > 0) {min = value;}}return min;}public void printList(List<?> list) {Iterator<?> iterator = list.iterator();while (iterator.hasNext()) {Object object = iterator.next();System.out.print(object + " ");}}@Testpublic void test1() {List list = new ArrayList<Integer>();while (list.size() < 10) {list.add((int) (Math.random() * 20));}System.out.println(minValue(list));printList(list);}@Testpublic void test4() throws Exception {List<? extends Number> list1 = new ArrayList<Integer>();//list1.add(100); // ?表示至少是Number及子類的未知類型, 類型還是未知, 不能冒然添加 , 類型最大是NumberNumber number = list1.get(0); // 因為?類型 至少得是Number及其子類List<? super Number> list2 = new ArrayList<Number>(); // ?表示是Number及其父類類型, 類型還是未知, 但是類型最小是Numberlist2.add(100); // 可以添加的原因是 ? 至少是Number, 實際添加的是Integer是Number類型, 所以能添加//Object object = list2.get(0); // 集合中保存的至少是Number也有可能是Number的父類, 所以不能用Number類型接收}
總結
- 上一篇: java StringBuffer常用方
- 下一篇: 使用Maven导出工程依赖的jar包