通过泛型实现封装,减少重复代码

来源:互联网 发布:mac 文字整理 编辑:程序博客网 时间:2024/06/05 10:57

基础知识:

为了减少项目中的重复代码,通过泛型抽象提取基类是比较重用的方式。会设计到如下的知识点:

1.泛型类,泛型函数的中声明泛型

2.基于抽象函数的模板方法模式


1.1泛型函数(声明函数的时候定义类型)

public abstract class BaseLoadingFragment<T_CreditWealthLoader extends CreditWealthLoader,                                          T_BaseResp extends BaseListResp,                                          T_BaseAdapter extends BaseAdapter,                                          T_BaseAdapterList extends ArrayList>


public class ArrayList<E> extends AbstractList<E>        implements List<E>, RandomAccess, Cloneable, java.io.Serializable

1.2泛型函数(声明函数的时候定义类型)

    public <TTT> int set(int index, TTT element) {        return 0;    }

调用如下:
xx.set(0,"hello");
xx.set(1,123);


1.3泛型函数(声明函数的时候定义了一个泛型TTT(对比上面的1.2)  同时这个函数的返回值是TTT泛型)

    public <TTT> TTT set(int index, TTT element) {        TTT t = null ;        return t;    }

1.4泛型函数(函数声明的泛型TTT   与  返回值泛型T_BaseResp不相同)

    public <TTT> T_BaseResp set(int index, TTT element) {        TTT t = null ;        T_BaseResp resp = null;        return resp;    }


带不同泛型的ArrayList在编译后生成的Class是相同的!也就是说,泛型在编译生成字节码文件时会被”擦除”;不管ArrayList带什么泛型,在编译后都是ArrayList所对应的字节码文件。我们再来个更直观的:
0 0
原创粉丝点击