亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 注释

Java 注释

在本教程中,我们将通过示例了解什么是注解、不同的 Java 注解以及如何使用它们。

Java 注解是我们程序源代码的元数据(关于数据的数据)。

它们向编译器提供有关程序的附加信息,但不是程序本身的一部分。这些注解不影响编译后程序的执行。

注解以 @ 开头 .它的语法是:

@AnnotationName

我们以@Override为例 注释。

@Override annotation 指定已用此注解标记的方法覆盖具有相同方法名称、返回类型和参数列表的超类的方法。

不强制使用 @Override 覆盖方法时。但是,如果我们使用它,如果在覆盖方法时出现错误(例如错误的参数类型),编译器会报错。

示例 1:@Override 注解示例

class Animal {
  public void displayInfo() {
    System.out.println("I am an animal.");
  }
}

class Dog extends Animal {
  @Override
  public void displayInfo() {
    System.out.println("I am a dog.");
  }
}

class Main {
  public static void main(String[] args) {
    Dog d1 = new Dog();
    d1.displayInfo();
  }
}

输出

I am a dog.

在这个例子中,方法 displayInfo() 存在于超类 Animal 中 和子类 Dog .调用该方法时,调用的是子类的方法,而不是超类中的方法。


注解格式

注释还可以包括元素(成员/属性/参数)。

1。标记注释

标记注释不包含成员/元素。它仅用于标记声明。

它的语法是:

@AnnotationName()

由于这些注释不包含元素,因此可以排除括号。例如,

@Override

2。单元素注释

单个元素注解只包含一个元素。

它的语法是:

@AnnotationName(elementName = "elementValue")

如果只有一个元素,则约定将该元素命名为 value .

@AnnotationName(value = "elementValue")

在这种情况下,也可以排除元素名称。元素名称将是 value 默认情况下。

@AnnotationName("elementValue")

3。多元素注解

这些注释包含多个以逗号分隔的元素。

它的语法是:

@AnnotationName(element1 = "value1", element2 = "value2")

注释放置

任何声明都可以通过将其放在该声明之上来标记注释。从 Java 8 开始,注解也可以放在类型之前。

1。以上声明

如上所述,Java注解可以放在类、方法、接口、字段和其他程序元素声明之上。

示例 2:@SuppressWarnings 注解示例

import java.util.*;

class Main {
  @SuppressWarnings("unchecked")
  static void wordsList() {
    ArrayList wordList = new ArrayList<>();

// This causes an unchecked warning
    wordList.add("programiz"); 

    System.out.println("Word list => " + wordList);
  }

  public static void main(String args[]) {
    wordsList();
  }
}

输出

Word list => [programiz]

如果上面的程序编译不使用@SuppressWarnings("unchecked") 注解,编译器仍然会编译程序,但会给出如下警告:

Main.java uses unchecked or unsafe operations.
Word list => [programiz]

我们收到警告

Main.java uses unchecked or unsafe operations

因为下面的说法。

ArrayList wordList = new ArrayList<>();

这是因为我们还没有定义数组列表的泛型。我们可以通过在尖括号 <> 内指定泛型来修复此警告 .

ArrayList<String> wordList = new ArrayList<>();

2。类型注释

在 Java 8 之前,注解只能应用于声明。现在,也可以使用类型注释。这意味着我们可以在任何使用类型的地方放置注解。

构造函数调用

new @Readonly ArrayList<>()

类型定义

@NonNull String str;

此声明指定非空变量 str String 类型 避免 NullPointerException .

@NonNull List<String> newList;

此声明指定类型为 String 的非空列表 .

List<@NonNull String> newList;

此声明指定类型为 String 的非空值列表 .

类型转换

newStr = (@NonNull String) str;

扩展和实现子句

class Warning extends @Localized Message

抛出子句

public String readMethod() throws @Localized IOException

类型注释可以更好地分析 Java 代码并提供更强大的类型检查。


注解类型

1. 预定义注释

  1. @Deprecated
  2. @Override
  3. @SuppressWarnings
  4. @SafeVarargs
  5. @FunctionalInterface

2. 元注释

  1. @Retention
  2. @Documented
  3. @Target
  4. @Inherited
  5. @Repeatable

3. 自定义注解

这些注解类型在 Java 注解类型教程中有详细描述。


注解的使用


java

  1. Java 运算符
  2. Java 评论
  3. Java if...else 语句
  4. Java for-each 循环
  5. Java break 语句
  6. Java 数组
  7. Java 字符串
  8. Java 接口
  9. Java 匿名类
  10. Java try-with-resources
  11. Java 断言
  12. Java 向量