泛型技术

1、自定义泛型---泛型方法

java程序中的普通方法,构造方法和静态方法中都可以使用泛型。方法使用泛型前,必须对泛型进行声明。语法:

<T>,T可以是任意字母,但通常必须 要大写。<T>通常需放在方法的返回值声明之前,如:

public <T>  void method1(T t){}
注意:只有对象类型才能作为泛型方法的实际参数,在泛型方法中可以申请多个泛型参数。

public static <K, V>V getValue(K key){
		return map.get(key);
	}
2.自定义方法--泛型类

当一个类中的所有方法都采用的是泛型的时候,可以将此类定义为一个泛型类。这样其中的方法可以不用按普通方式书写,但都既有了泛型特性。如:

class MethodGenericDemo{
	
	public <T>  void method1(T t){
		System.out.println(t);
		
	}
	
	public <T>  void method2(T t){
		System.out.println(t);
		
	}
	
}
可以写成泛型类,如下:

class MethodGenericDemo<T>{
	
	public  void method1(T t){
		System.out.println(t);
		
	}
	
	public  void method2(T t){
		System.out.println(t);
		
	}
	
}
//值得注意的是,在泛型类中,泛型只能作用于非静态方法,对与静态方法,要使用泛型,依然需要使用泛型方法,如下:

class MethodGenericDemo<T>{
	
	public  void method1(T t){
		System.out.println(t);
		
	}
	
	public  void method2(T t){
		System.out.println(t);
		
	}
	//泛型类只对非静态方法有效,对非静态方法无效
	public static<T> void method3(T t){
		System.out.println(t);
	}
	
}

测试函数:

public class MethodGeneric {
	public static void main(String[] args){
		MethodGenericDemo demo = new MethodGenericDemo();
		demo.method1(new String("aaa"));
		demo.method2(new Integer(3));
	}
	
	
}

3.泛型高级应用,通配符?

当接受的类型不确定时,可以使用?通配符,?可以指向任何类型,如下所示:

public static void print(Collection<?> c){ //Collection<?>发音为Collection of unknown
		for(Object o:c){
			System.out.println(o);
		}
	}

由于?指向的是一个不确定的类型,因此不能使用该对象调用一个和类有关的方法,因为有些其它类并没有此种方法,java在语法上会报错。只能调用和类无关的方法

4.泛型高级应用---有限制的通配符

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值