首页  >  文章  >  Java  >  Java注解

Java注解

WBOY
WBOY原创
2024-08-30 16:06:26503浏览

注释在 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();
}
}
}

输出:

Java注解

结论

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

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn