java 注解
1、 元注解
元注解主要负责注解其他的注解
元注解 | 描述 |
---|---|
@Target | 表示该注解用于什么地方。可能的ElementType参数包括: CONSTRUCTOR: 构造器的声明 FILELD:域声明(包括enum实例) LOCAL_VARIABLE:局部变量声明 METHOD:方法声明 PACKAGE:包声明 PARAMETER:参数声明 TYPE:类、接口(包括注解类型)或enum声明 |
@Retention | 表示需要在什么级别保存该注解信息。可能的RetentionPolicy参数包括: SOURCE:注解将被编译器丢弃,.java源文件中保留 CLASS:注解在class文件中可用,但会被VM丢弃(运行时不可用) RUNTIME:VM将在运行期也保留注解,因此可以通过反射机制读取注解信息 |
@Documented | 将此注解包含在javadoc中 |
@Inherited | 允许子类继承父类中的注解 |
大多时候,程序员主要是定义自己的注解,并编写自己的处理器来处理他们
注解元素可用的类型:
所有基本类型(int、float、boolean)
String
Class
enum
Annotation
以上类型的数组
注解默认值限制:要么有值、要么有默认值,默认值不能为null
2、 java常见的内置注解
@Override:表示当前的方法定义将覆盖超类中的方法
@Deprecated:表示注解的目标已被弃用
@SuppressWarnings:关闭不当的编译器警告信息
3、 简单的例子
通过注解解析sql语句
3.1、定义注解类
sql约束条件注解
package annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
// 约束条件注解
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Constraints {
boolean primaryKey() default false; // 是否主键
boolean allowNull() default true; // 是否可为null
boolean unique() default false; // 是否唯一
}
数据库表名注解
package annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
// 数据库表名注解
@Target({
ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface DBTable {
String name() default ""; // 表名
}
数据库int类型注解
package annotations;
import java.lang.annotation.ElementType;
import java.lang