评论按生命周期分为三类。
1、RetentionPolicy.SOURCE :注释仅保留在源文件中,当Java文件编译为class文件时,注释将被丢弃;
2、RetentionPolicy.CLASS :注释保留在class文件中,但在jvm加载class文件时会被丢弃。 这是默认的生命周期;
3、RetentionPolicy.RUNTIME :注释不仅保存在class文件中,在jvm加载class文件后还存在;
这三个生命周期分别对应于Java源文件---Java文件--- .class文件---内存中的字节码。
那么,如何选择合适的评论生命周期?
首先必须明确生命周期长SOURCE CLASS RUNTIME,所以前者发挥作用的地方后者也一定发挥作用。 通常,如果需要在运行时动态获取注释信息,则只能使用RUNTIME注释,如果要执行预处理操作(如在编译时生成ButterKnife等辅助代码),请使用CLASS注释。 如果只是进行检查性操作,例如3@Override或http://www.Sina.com/,则可以使用SOURCE注释。