java泛型

一、泛型方法
1、规则
  • 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前
  • 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。
  • 类型参数能被用来声明返回值类型
  • 类型参数只能代表引用型类型
        //泛型方法
	public static <E,T> void method(E[] a,T b) {
		for (E e : a) {
			System.out.print(e+" ");
		}
		System.out.println("  "+b);
	}
	public static void method2() {
		int[] a1= {1,2,3};
		String[] a2= {"a","b","c"};
		Integer[] a3= {1,2,3};
//		method(a1,a1[0]);	//不能是基本类型
		method(a3,a3[0]);	//可以是对应的包装类
		method(a2,a2[0]);
	}


2、有界的类型参数
  • 限制类型参数的类型种类范围:返回类型前的类型参数后跟extends,后跟类或接口
        //有界的泛型方法
	public static <E extends Comparable<E>> void method3(E x,E y) {
		if(x.compareTo(y)>0)
			System.out.println(x+">"+y);
		else
			System.out.println(x+"<="+y);
	}
	public static void method4() {
		String a1[]= {"a","b"};
		method3(a1[0],a1[1]);
	}


二、泛型类
  • 泛型类的声明和非泛型类的声明类似,除了在类名后面添加了类型参数声明部分。
  • 和泛型方法一样,泛型类的类型参数声明部分也包含一个或多个类型参数,参数间用逗号隔开。
  • 这些类被称为参数化的类或参数化的类型。
        /**
	 * 泛型类
	 * @param T:泛型类型
	 */
	static class A <T>{
		T a;
		
		public A(T a) {
			this.a=a;
		}
		
		public void print() {
			System.out.println("a:"+a);
		}
	}
	public static void method5() {
		A<String> a1=new A<String>("abc");
		A<Integer> a2=new A<Integer>(new Integer(123));
		a1.print();
		a2.print();
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值