Java 1.8 Annotations 注解
一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 - 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/
截止目前, 星球 内专栏累计输出 66w+ 字,讲解图 2896+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2300+ 小伙伴加入学习 ,欢迎点击围观
在本小节中,我们将详细探讨 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 的注解。