“嗨,阿米戈!”

“你好,瑞希。”

“今天我就给大家深入介绍一下注解。”

“您可能已经知道,注释是可以放在类、字段、方法和变量旁边的特殊词。”

“是的,我经常遇到他们。”

“有时它们也被称为元数据。它们的主要目的是存储有关方法、字段和类的特定附加信息。”

“他们为谁存储它?”

“这是一个很好的问题。”

“人们写注释,这意味着必须有人需要它们。”

“注释让您可以存储有关代码和程序元素的附加信息,但从形式上讲,它们不是代码的一部分。”

“注释可用于生成 XML、确定方法是否已弃用、跟踪错误等。”

“这是代码中的注释示例:”

例子
@CatInfo(manager=Catmanager.class, unique=true)
class Cat
{
 @Name("Missy")
 private String name;

 @SuppressWarnings(value = "unchecked")
 void getUniqueCatName()
 {

 }
}

“如您所见,数据可以存储在注释中。”

“如果一个注解只有一个名为value的字段,那么字段名可以省略:”

例子
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

"如果括号内没有参数,那么也可以省略:"

例子
@Override
void getUniqueCatName()
{

}

“创建自己的注释非常容易。声明注释几乎与声明接口相同。”

例子
@interface CatManager
{
 Class manager();
 boolean unique();
 String name() default "Unknown Cat";
}

“只有几个不同之处。”

“首先,你在interface之前放了一个 «@» 符号。”

“其次,注释可以有默认值。您使用默认一词来设置默认值。请参见上面的示例。这些参数是可选的,在添加注释时可以省略。”

“啊。这比我想象的要容易得多。而且我一直在避开它们,就像机器魔鬼避开圣水一样。当代码中有很多你不完全理解的东西时,这不是很愉快。”

“哦,你提醒我真好——我想告诉你更多关于编译器使用的注释。”

“这样的注释只有三个。嗯,目前只有三个。”

@弃用。

“您可以使用@Deprecated 注释类或方法。这将导致编译器发出警告(警告不是错误),IntelliJ IDEA 会将此方法显示为带删除线的文本。像这样 :

例子
Date date = new Date();
int year = date.getYear();

@覆盖。

“将 @Override 注释添加到您覆盖的方法被认为是最佳实践。”

“那是干嘛的?IDEA不是已经显示方法是否被覆盖了吗?”

“首先是 IDEA,然后是 Java 语法。”

“其次,假设,你可能会遇到这样一种情况,即基类的方法被重命名,而子类中的方法名称没有相应的更改。程序不会按预期工作,但没有人会注意到。发明这个注解是为了防止这些情况发生:"

例子
@Override
void getUniqueCatName()
{

}

@SuppressWarnings。

“有时编译器会显示很多警告。有时我们知道 «问题» 并故意选择使用创建它们的相应代码。您可以使用此注释来隐藏其中一些警告。”

“程序员可以使用@SuppressWarnings注释告诉编译器,«不要显示此错误的警告 - 这是故意的。» 例如:”

例子
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

“知道了。”

“我有点累了,我要弄湿我干燥的喉咙了,我们休息一下再继续,好吗?”

“当然。”