泛型第二发#泛型方法#

泛型方法有三种:一、与类的泛型捆绑;二、独立于类的类型;三、静态方法的泛型

定义如图所示:


下面是实现上面三种方法的代码实现:

package cn.hncu.generic.two;

public class Demo3 {

	public static void main(String[] args) {
		//t1();
		//t2();
		t3();
	}

	//1类上的泛型演示(方法上的泛型和类上的捆绑)
	private static void t1() {
		Tool<String> t1 = new Tool<String>();
		t1.show("abc123");
		//t1.show(new Integer(100));//ERROR
		
		
		Tool<Integer> t2 = new Tool<Integer>();
		t2.show(new Integer(100));
		//t2.show("abc123");//ERROR
		
	}
	
	//2方法上的泛型演示(独立于类上的泛型)
	public static void t2(){
		Tool<String> t1 = new Tool<String>();
		t1.print("abc123");
		//Integer i = t1.print2("abc123");//ERROR
		String str = t1.print2("aaa123");
		System.out.println(str);
		
		//int型 转化成 String型
		String str2 =String.valueOf(100);
		System.out.println(str2);
		String str3 =""+100;
		System.out.println(str3);
		//String str4 =(String) (100);//不行
	}
	
	//3方法上的泛型演示(静态方法上的)
	public static void t3(){
		Tool.aa(123);
		Tool.aa("abcd112");
	}
	
	
	
}

class Tool<W>{
	public void show(W w){
		System.out.println("show:" + w.toString());
	}
	
	public <A> void print( A a){//方法上面的泛型
		System.out.println(a);
		//return a;
	}
	
	public <B> B print2( B a){//方法上面的泛型
		System.out.println(a);
		return a;
	}
	
	/*静态方法上的泛型不能使用类上的,下面是出错的
		public static void aa(W w){
			System.out.println("static aa:");
		}
	*/
	//静态方法上的泛型,要自己定义(不能引用类上的)
	public static<Y> void aa(Y y){
		System.out.println("static aa:"+y);
	}
	
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值