18.类型变量的限定。
1.ArrayAlg.java
package javacore.chapter8;
import java.io.Serializable;
import java.time.LocalDate;
public class ArrayAlg {
	public static void main(String[] args) {
		String[] strArr = { "Wowo", "And", "Yako" };
		System.out.println(ArrayAlg.min(args));
		System.out.println("------------");
		LocalDate[] birthdays={
				LocalDate.of(1997, 3, 12),
				LocalDate.of(2000, 6, 21),
				LocalDate.of(1997, 8, 5)
		};
		System.out.println("------------");
		System.out.println(ArrayAlg.min(birthdays));
	}
	/**
	 * 1.C++:C++中无法对模板参数类型进行限制。 
	 * 2.count:一个类型变量可以有多个限定。使用&分割。
	 * 3.order:类必须是列表中的第一个,且只有一个类.
	 * @param a
	 * @return
	 */
	public static <T extends Object & Comparable & Serializable> T min(T[] a) {
		if (a == null && a.length == 0)
			return null;
		T smallest = a[0];
		for (int i = 1; i < a.length; i++) {
			if (smallest.compareTo(a[i]) > 0)
				smallest = a[i];
		}
		return smallest;
	}
}




 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号