Java 注解

很多人一看到注解就觉得很简单,里面无非就是单行注释,多行注释等内容!如果这样认为,请静下心来,其实这里面还有是一点技术,如果你想用注解提升自己的逼格,让自己更加专业一点!那么,搬个小板凳过来…… ->_-> ……

学习重点:自定义注解,利用自定义注解解决问题!

学习前提:掌握类中方法的反射 ,如不会请看反射(reflect)篇---java总的反射

1 注解的引入

那么我们为什么要使用注解呢?

(1)为了可以读懂别人的代码,特别是框架型的spring,mybits等;

(2)让编程更加简洁,代码更加清晰

(3)让别人高看自己

注解的概念:Java中提供的一种 原程序中的元素 关联 任何信息和元数据动态途径和方法! 

2 常见注解

2.1 JDK自带的注解

继承型 @Override

自定义使用@Deprecated该注解表示方法不适合所有对象;使用时需要声明一下才能使用;

忽略警告型的@SuppressWarnings(“Unchecked”)@Suppress Warnings(“Deprecated”);

2.2 第三方注解

例如:

Spring框架中的: @Autowired、 @Service、 @Repository

Mybatis框架中的: @InsertProvider、 @UpdateProvider 、@Options

此处省略介绍,如需要,转到框架中学习相关的东西;

2.2 注解分类

按照运行机制分类:

(1)原码注解

  • 编译时注解(@Override、@Deprecated、@Suppress Warnings)
  • 运行时注解(@Autowired等)

(2)按照来源划分

  • JDK注解
  • 第三方注解
  • 自定义注解

元注解:给注解进行注释的注解 

2.3 自定义注解

语法、元注解、自定义注解的使用、解析注解

语法格式:

@Target({ElementType.METHOD,ElementType.TYPE})//作用范围:包、类、字段、方法、方法参数、局部变量
@Retention(RetentionPolicy.RUNTIME)//生命周期:原码SOURCE、编译CLASS、运行RUNTIME
@Inherited
@Documented
public @interface Description {
   String desc();
   String author();
   int age() default 18;//设置默认值为18;
}

//如果注解只有一个成员,则成员名必须为value(),在使用时可以忽略成员名和赋值符号(=)。如下示例:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
 
public @interface Table {
String value();
}

注解类可以没有成员,但是没有成员的注解类称为标识注解;

 

2.2 元注解

 

 

注解方法不可以有参数,不可以有异常;

注解的使用:

语法:@<注解名>(<成员名1>=<成员值1>,<成员名1>=<成员值1>,……)

示例:

@Description(desc=”I am eyeColor”, author=”Ternece’ , age=18)
public String age()
{
   return 26;
}

下一篇:如何定义并使用自定义注解,提高程序的质量!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值