代码:javaVedio/Src/Annotation
作用:1、注释 2、可被其他程序读取(编译器)
格式:@注释名 @SuppressWarnings(value=‘unchecked’)
使用范围:packet;class;method;field
示例:
@override 重写父类方法
@Deprecated 不建议使用
@SupperessWarnings 抑制编译时警告信息
@SupperessWarnings(“all”)
@SupperessWarnings(value={“unchecked”,“deprecation”})
自定义注解
关键字:@interface
元注解:@Target 定义注解作用范围
public @interface MyAnnotation01 {
String studentName() default "";
int age() default 0;
String[] schools() default {"tsinghua","beijing"};
}
注:经常使用空字符串、0作为默认值 经常使用负数(-1)表示不存在的含义
ORM(Object Relationship Mapping)
使用注解完成类和表结构地映射关系
package Annotation;
@SxtTable("tb_student")
public class sxtStudent {
@sxtField(columnName="id",type="int",length=10)
private int id;
@sxtField(columnName="sname",type="varchar",length=10)
private String studentName;
@sxtField(columnName="age",type="int",length=3)
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
@Target(value={ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface sxtField {
String columnName();
String type();
int length();
}
@Target(value={ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface SxtTable {
String value();
}
package Annotation;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
//使用反射处理注解信息,模拟处理注解信息的流程
public class Demo03 {
public static void main(String[] args) {
try {
Class clazz=Class.forName("Annotation.sxtStudent");
Annotation[] annotation =clazz.getDeclaredAnnotations();//获取类的所有注解
for(Annotation a:annotation){
System.out.println(a);
}
//获得类指定注解
SxtTable st=(SxtTable)clazz.getAnnotation(SxtTable.class);
System.out.println(st.value());
//获得类的属性注解
Field sf=clazz.getDeclaredField("studentName");
sxtField sxtField=sf.getAnnotation(sxtField.class);
System.out.println(sxtField.columnName()+"--->"+sxtField.type()+"--->"+sxtField.length());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}