Java 1.8 Annotations 注解
一则或许对你有用的小广告
最近,小哈正在带小伙伴们做前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.2 + Vite 4
,手把手,前端 + 后端,全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已进入第七章 《文章分类模块开发》中,截止到目前,已更新 105150 字,69 篇内容,讲解图:521 张,还在持续爆肝中,后续还会上新更多项目,已有 200+ 小伙伴加入,欢迎点击围观。
在本小节中,我们将详细探讨 Java 8 的注解(Annotations)。你可能在写 Java 代码的时候见过 @Override
,@Deprecated
,@SuppressWarnings
等这样的符号,这就是我们要讨论的注解。那么,开始吧!
1. 注解是什么?
在 Java 中,注解是一种元数据,可以为我们的代码提供附加信息。这些信息可以被编译器、开发工具或者运行时环境所利用,来做出各种不同的操作。它不会直接影响代码逻辑,但可以影响代码如何被处理。
@Override
public String toString() {
return "This is a sample class!";
}
这里,@Override
注解告诉编译器这个方法覆盖了父类的 toString
方法。如果没有这样的方法被覆盖,编译器会报错。
2. Java 8 对注解的改进
在 Java 8 之前,注解只能被用在声明的上方,如类、方法、字段等。Java 8 带来了两个重要的改进:
- 可重复注解(Repeatable Annotations):在 Java 8 中,我们可以在同一个地方多次使用相同的注解。
- 类型注解(Type Annotations):我们可以使用注解来注释任何我们使用类型的地方,如变量、抛出的异常等。
3. 定义注解
定义一个注解非常简单,只需要使用 @interface
关键字,如下所示:
public @interface MyAnnotation {
String value() default "";
}
4. 使用注解
我们可以在类、方法、变量等地方使用注解,只需要在其前面加上 @注解名
即可:
@MyAnnotation("Hello")
public class MyClass {
// 类的代码...
}
5. 可重复注解
如果我们想要在同一个地方多次使用同一个注解,我们需要在定义注解的时候声明它为 @Repeatable
,然后指定一个“容器”注解来存储这些重复的注解:
@Repeatable(MyAnnotations.class)
public @interface MyAnnotation {
String value() default "";
}
public @interface MyAnnotations {
MyAnnotation[] value();
}
这样,我们就可以在同一个地方多次使用 MyAnnotation
注解:
@MyAnnotation("Hello")
@MyAnnotation("World")
public class MyClass {
// 类的代码...
}
6. 类型注解
在 Java 8 中,我们可以在任何使用类型的地方使用注解,例如变量声明、抛出的异常等。例如,我们可以定义一个 @NonNull
注解,然后在变量声明的时候使用它:
public @interface NonNull {}
public class MyClass {
public void myMethod(@NonNull String str) {
// 方法的代码...
}
}
这样,我们可以在运行时检查 str
是否为 null,如果为 null,则抛出一个异常。
7. 总结
注解是 Java 中的一个强大工具,可以帮助我们提供代码的元数据,以此来改变代码的处理方式。Java 8 对注解进行了一些改进,增加了更多的灵活性和实用性。希望这篇教程可以帮你理解和使用 Java 8 的注解。