java 泛型中的自定义方法--类型推断 和 自动装箱

/**
 * 自定义泛型方法
 * 泛型方法中的类型推断 和 泛型只对应引用类型的 例子
 * @author lh
 */
public class GenericTest3 {

	
	public static void main(String[] args) {
		
		/**
		 * 泛型中的类型推断
		 * 取两个参数的类型 的 交集 
		 *    即  3 和 5 取  整形
		 *    3.5 和 5 取 Number
		 *    3 和 abc 取 Object
		 */
		
		Integer res = add(3,5);
			
		Number res1 = add(3.5,5);
		
		Object res2 = add(3,"abc");
		
		
		
		String[] array = new String[]{"a", "b", "c"};
		swap(array ,1,2);
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}
		
		int[] array2 = new int[] {1,2,3,4,5};
		//swap(array2,3,4); //这里报错
		
	}
	/**
	 * 这里可以对应基本类型,是因为自动装箱
	 * @param x
	 * @param y
	 * @return
	 */
	public static <T> T add (T x, T y){
		return null;
	}
	
	/**
	 * 泛型不能对应 基本类型 只能对应引用类型
	 * 这里不能进行自动装箱,是因为  new int[] 已经是一个对象了
	 * @param a
	 * @param i
	 * @param j
	 */
	private static <T> void swap(T[] a, int i, int j) {
		T temp = a[i];
		a[i] = a[j];
		a[j] = temp;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值