package com.huangxudong.bindview;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 编译时注解
*
* <p>主要用来对编译class文件的时候生成代理类</p>
*
* <p>减少findViewbyId次数,提高编码效率</p>
*
* @Target {@code 注解所适用的地方,这里写的是类字段 {@link Target}}
*
* @Retention {@code 注解所应用的时机,这里是在编译class文件的时候}
*
* @author Mr Huang 2018/7/7
*
* @version 1.0
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.CLASS)
public @interface BindView {
/**
* 注解的参数,这里主要是为了确定控件id的
*
* @return id
*/
int value();
}
package com.huangxudong.bindview;
import javax.lang.model.element.VariableElement;
/**
* 代理类需要关联处理的属性
*
* <p>主要是用来对控件与控件的id进行关联,并提供给代理类</p>
*
* @author Mr Huang 2018/7/7
*
* @version 1.0
*/
public class VariableInfo {
/**
* 控件id
*/
private int varId;
/**
* 控件对象,也就是在内存中存在的对象
*/
private VariableElement mVariableElement;
public int getVarId() {
return varId;
}
public void setVarId(int varId) {
this.varId = varId;
}
p