搜索

注释在 Java 开发工具包 (JDK) 1.5 版本中引入或可用。 Java 中的注解提供了有关代码结构中存在的数据的更多信息,即,它是关于数据的数据,也称为元数据。

Java 中的注解是什么?

注释有助于以标准化方式定义代码中的元数据。此外,注释还有助于向 Java 编译器提供编译 Java 代码时要遵循的指令。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

Java注解

使用注解时,我们使用“@”符号,然后加上注解的名称,以便编译器将其视为注解。

需要注意的是,注释可以添加在:

之前
  • 类声明
  • 成员变量声明
  • 构造函数声明
  • 方法声明
  • 参数声明
  • 局部变量声明。

要记住的重要一点是所有注释都扩展 java.lang.annotation.Annotation 接口。此外,注释不能包含任何扩展子句。

内置 Java 注解

在Java中,有一些内置的注释,例如@Override、@Deprecated、@SuppressWarnings,它们是为特定目的而设计的,并在上述情况之一中使用,例如,仅用于类或仅用于方法等

示例 #1 – 覆盖

代码:

class Dad {
public void say() {
System.out.println("Do your homework");
}
}
public class Child extends Dad {
@Override
public void say(){
System.out.println("I wanna play");
}
public static void main(String args[]){
Dad daddy = new Child();
daddy.say();
}
}

输出:

Java注解

示例 #2 – 已弃用

代码:

public class Outdated
{
@Deprecated
public void oldShow()
{
System.out.println("This Method is deprecated");  }
public static void main(String args[])
{
Outdated  od = new Outdated ();
od.oldShow();
}
}

输出:

Java注解

Java注解

元注释

元注释有五种类型:

  1. 记录 – 它通知使用此注释的成员、变量或类需要由 Javadoc 或任何其他可用的类似工具记录。
  2. 目标 – 用于指定注释使用的类型。它主要与您的自定义注释一起使用。
  3. 继承 – 标记要继承给子类的注解。
  4. 保留 – 指示带注释类型的注释要保留多长时间。它采用保留策略参数,其可能值为:SOURCE、CLASS 和 RUNTIME。
  5. 可重复 - 这表明其声明的注释类型是可重复的。

示例 – 文档和保留

代码:

import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@interface RSample {
String rentent();
}
@Documented
@interface DSample {
String doc();
}
public class MetaAnnotate {
public static void main(String arg[])
{
new MetaAnnotate().rentent();
new MetaAnnotate().doc();
}
@RSample (rentent="Meta Info R")
public void rentent() {
System.out.println("Retention Policy Applied");
}
@DSample(doc="Meta Info D")
public void doc() {
System.out.println("Code Documented with the value");
}
}

输出:

Java注解

说明:

  • RetentionPolicy.RUNTIME – 该值指定注释值应在运行时可用,以便通过 java 反射进行检查。
  • 运行 Javadoc 命令来查看代码的文档。

注释类型

注释分为三类,具体如下:

1。标记注释 – 这些类型的注释用作声明,通知开发人员以下函数或类的全部内容,即,它共享有关函数或类的额外信息,例如该函数是否覆盖另一个函数或者是函数已弃用等。@Override、@Deprecated 被视为标记注释。

示例: DemoAnnotation()

2。单值注释 – 这种注释采用值来指定注释放置在前面的成员的值,因此不需要指定该成员的名称。

示例: DemoAnnotation(“custId123”)

3。完整注释 – 这种注释采用多个值、对、成员。

示例: DemoAnnotation(category=”Toys”, value=1500)

自定义

自定义注释由用户界面创建,后跟注释名称,如我们将在下面的示例中看到的。

文件 1:定义的自定义注释

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface Magicians
{
String Wizard() default "Reynolds";
String House() default "Green";
}
@Magicians
public class Magician
{
@Magicians(Wizard = "Harry Potter", House = "Red")
public String getString()  {  return null; }
}

文件2:调用自定义注解类的主类

import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Method;
public class MyCustomAnnotation
{
public static void main(String[] args) throws NoSuchMethodException, SecurityException
{
new Magician();
Class<magician> magic = Magician.class;
readAnnotationOn(magic);
Method method = magic.getMethod("getString", new Class[]{});
readAnnotationOn(method);
}
static void readAnnotationOn(AnnotatedElement element)
{
try
{
System.out.println("\n Find annotations on " + element.getClass().getName());
Annotation[] annotations = element.getAnnotations();
for (Annotation annotation : annotations)
{
if (annotation instanceof Magicians)
{
Magicians mData = (Magicians) annotation;
System.out.println("Wizard Name :" + mData.Wizard());
System.out.println("Wizard House Color :" + mData.House());
}
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}</magician>

输出:

Java注解

结论

在本文中,我们通过示例了解了什么是 java 注释及其类型,我们看到了 java 提供的内置注释的示例,并编写了自定义注释。我们看到注释对于标准化代码很有用,也有助于更好地理解代码及其结构。

以上是Java注解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?Mar 17, 2025 pm 05:46 PM

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?Mar 17, 2025 pm 05:45 PM

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?Mar 17, 2025 pm 05:44 PM

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?Mar 17, 2025 pm 05:43 PM

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Mar 17, 2025 pm 05:35 PM

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版