学习Apt(日志) 二

上一篇,我们在使用的时候不太方便,后再做了一些改造,使用反射。在使用 xxxxx.bindView的时候 同意由一个类的 反射获取对应的辅助类,


public class MyButterKnife {
    private static Map<Class,Method> classMethodMap = new HashMap<>();
    public static void bindView(Activity target){
        if (target != null){
            Method method = classMethodMap.get(target.getClass());
            try {
                if (method == null) {
                    //因为辅助类有一个前缀 这里要加上,拼接出辅助类的全限定名
                    String bindClassName = target.getPackageName() +".Bind" +target.getClass().getSimpleName();
                    Log.i("xxxxxxxx",bindClassName);
                    Class bindClass = Class.forName(bindClassName);
                    method = bindClass.getMethod("bindView", target.getClass());
                    classMethodMap.put(target.getClass(), method);
                }
                method.invoke(null, target);
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
}

在使用的时候,稍微改一下。把BindXXXActivity.bindView 统一改成 MyButterKnife.bindView就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值