注解Annotation

代码: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();
		}
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值