Java注解——Annotation
一、概念
注解也是Java中一种比较特殊的存在,一般可以声明在任何一个位置,用于给我们的代码提供一些说明或者提供一些功能。
@Override @Deprecated
二、注解使用一般分为三种情况的注解
1、只是用来进行解释说明的注解,这个注解没有多余的操作代码。
2、在我们编译时期,可以根据注解生成多余的class二进制代码文件,需要借助一些插件才能完成。
3、在运行时期,我们根据注解对代码进行相关的修正或者赋值操作----结合Java的反射机制进行操作。
三、注解的声明
注解可以声明在Java代码的任何一个位置;注解我们也可以自己声明一个。
语法:
@元注解
访问控制修饰符 @interface 注解名{
属性类型 属性名() =“值”;
}
四、元注解
元注解是Java提供的用来修饰注解的注解,用来表示我们自己声明的注解可以在哪些位置声明,可以在什么时期存在,能不能被子类继承,或者说注解能不能被JavaDOC文档识别
- @Target—注解声明在哪些位置
- @Retention–声明注解可以在什么时期存在
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(value = {ElementType.METHOD,ElementType.PARAMETER,ElementType.FIELD})//使用位置
@Retention(value = RetentionPolicy.SOURCE)//使用时期
public @interface MyAnno {
String value();//属性
}
public class Demo {
@MyAnno(value = "ls")
private String name;
@MyAnno(value = "zs")
public String test(@MyAnno(value = "zs") int age) {
return "";
}
}
-
@Inherited–子类可以继承父类的注解
-
@Documented—JavaDOC文档注释可以识别这个注解
注解中可以有一个属性,也可以有多个属性,如果只有一个属性,建议属性名为value,因为这样的话使用注解时可以不用写属性名,否则必须声明属性名
五、Lombok插件
1、概念
lombok插件就是基于注解帮助我们快速生成JavaBean类的一个工具,工具中提供了一大堆注解,注解可以帮助我们Java代码在编译时期生成JavaBean的方法和构造器等内容。
2、使用方式
lombok插件使用前需要两步操作:
1、在项目引入lombok的第三方工具jar包——在项目中能找到lombok的相关注解代码。
2、还必须在eclipse中安装一个lombok的编译插件。
3、内部注解
lombok提供了一大堆注解用来生成JavaBean
-
@Data —— 包含以下四个注解
-
@ToString
-
@Getter
-
@Setter
-
@EqualsAndHashCode
-
@NoArgsConstructor —— 无参构造器
-
@AllArgsConstructor —— 有参构造器
-
@Builder —— 构造者模式
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Student {
private String name;
private Integer age;
}
public class Test {
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student("zs",20);
s1.setName("ls");
System.out.println(s1);
System.out.println(s2);
Student student = Student.builder().name("ww").build();
System.out.println(s1);
System.out.println(student);
}
}