java 泛型<T> 分类与使用示例

定义

     类型参数化,即把类型作为参数方式的 设计模式。

格式

      泛型类  public  Class ClassName<T>    

      泛型接口public interface InterfaceName<t>

      泛型方法 public <T> T get(T t) 泛型方法特指在普通类中定义的泛型方法,在返回类型前用泛型符号<T>

例子

      泛型类:

public class IpTest<E> {
	E e;  //成员变量不能为 static
	public IpTest() {
		
	}
	public IpTest(E element) {
		e = element;
	}
	private E getElement(){
		return e;
	}
    public static void main(String[] args0{
        IpTest<String> test = new   IpTest<String>();      //泛型调用,此格式常见
    }
 }

泛型接口

public interface IpTest<T> {
	//接口内只有虚拟方法
	public T add(T t);
	public List<T> addToList(T t);
}

泛型方法

//可以在<T>中指明T的类型,通过extends 和implements等,如extends List ;implements Closeable;

public static <T> void set(T t);

public <T extends List> void set(T t);

public <T> void get (T ... t);

泛型的优点

泛型可以大大增加程序的灵活性,并减少开发工作量 。

最近在做webmagic爬虫,  对于结构化的爬取结果webmagic用pipline处理,一个爬虫可以定义任意个 结构化数据类DAO,但是并不需要定义匹配的pipline方法。如下,webmagic建立泛型接口

public interface PageModelPipeline<T> {

    public void process(T t, Task task);

}

使用时,对于任意DAO,都可以通过集成泛型接口实现

public  class WeatherTargetPipeline implements PageModelPipeline<WeatherDao>{

	public WeatherTargetPipeline() {
		// TODO Auto-generated constructor stub
	}

	@Override
	public void process(WeatherDao t, Task task) {
		// TODO Auto-generated method stub
		//处理逻辑
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值