java泛型的简单应用

泛型的概念

    泛型:通过<数据类型>接收一种数据类型,在编译的时候会使用这种数据类型检测集合中的元素,如果元素不是<>中规定的类型,就不允许添加到当前的集合中(编译失败)

泛型作用:

   1.使用了泛型不再需要进行容错处理,向下转型,强制类型转换----简化代码

    2.将运行阶段的问题提前到编译阶段检查,提高了代码的安全性和编程效率

 泛型可以修饰的地方:类,方法,接口

泛型用在类上

   在类的后面直接添加<E>,E代表任意一种数据类型,注意:这里不一定是E,任意字母都可以
 * 在类上确定的泛型可以直接在方法上使用
 * 当泛型没有指定时默认是Object


class Student1<E>{
	E tools;
	public E getTools() {
		return tools;
	}
	public void setTools(E tools) {
		this.tools = tools;
	}
}

泛型用在方法上

class Dog<F>{
	//1.方法上的泛型与类上的泛型保持一致
	public void eat(F f) {
		System.out.println(f);
	}
	//2.方法上独立使用泛型
	/*
	 * 注意:泛型在使用之前一定要先进行定义
	 * 定义的方式:在当前方法的最前面添加<泛型>
	 * 作用:让方法与方法内的泛型保持一致
	 */
	public <E> void song(E e) {
		ArrayList<E> arrayList = new ArrayList<>();
		System.out.println(e);
	}
	//3.静态方法上使用泛型
	/*
	 * 必须独立使用
	 * 方式:在static 后面定义泛型  <泛型> 
	 */
	public static <W> void show(W w) {
		
	}
}

泛型用在接口上

/**
*1.子类上的泛型与接口上的一致
*2.类上的泛型确定了,接口上的泛型就确定了,方法上的泛型就确定了
*/
interface Inte<E>{
	public void show(E e);
}
class Pig<E> implements Inte<E>{
	@Override
	public void show(E e) {
		System.out.println(e);
	}
}


/**
*   2.接口上使用泛型,子类上不用泛型
*   在实现的接口位置必须指定一个具体的泛型 
* 方法使用泛型的情况:
* 1.如果是重写的方法,泛型与接口一致
* 2.如果是子类自己的方法,可以与接口一致,也可以有自己的泛型
*/

class Bird  implements Inte<String>{
	public void show(String e) {};
}



class Ac<E> implements Inte<E>{

	@Override
	public void show(E e) {
		// TODO Auto-generated method stub
		
	}
	public <F> void run(F f) {
		
	}
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值