跳转到内容

自定义注解

75% developed
来自维基教科书,开放的书籍,开放的世界

导航 Javadoc & 注解 主题:v  d  e )


注解可以被视为在 Java 中定义代码元数据的一种来源。在以下部分中使用的注解 @CodeDescription 不是 Java API 的一部分。

注解类型声明

[编辑 | 编辑源代码]

在你可以将注解用于类、其成员和语句或表达式之前,你需要定义一个 注解类型。以下是定义上述注解类型的语法。

Computer code 代码清单 1.1:注解类型声明
@interface CodeDescription
{
    String author();
    String version();
}

就是这样!我们第一个注解定义好了。现在,我们可以将它用于任何类。如果你仔细观察,注解定义类似于普通接口的定义,只是 interface 关键字前面加了 @ 字符。由于 @ 代表 'AT' 或 'Annotation Type'(注解类型),因此有些人将这种语法声明称为 注解类型声明

注解元素声明

[编辑 | 编辑源代码]

注解定义主体中看起来像方法的部分被称为 注解元素声明。这些是我们前面部分示例中用到的命名实体。为了清楚起见,下面的代码也代表了对以下注解的调用:

Computer code 代码清单 1.2:注解的调用
public class MyMethod
{
    @CodeDescription
    (
        author = "Unknown",
        version = "1.0.0.1"
    )
    public void doSomething()
    {
        ...
    }
}

注意
注解不是用于类,而是用于方法 doSomething()。这可能还不能体现注解的强大功能,但在后面的章节中会更深入地探讨。

使用默认值

[编辑 | 编辑源代码]

例如,你想让注解知道,如果 version 元素没有值,则应该使用 默认值。声明默认值的方式如下。

Computer code 代码清单 1.3:使用默认值。
@interface CodeDescription
{
    String author();
    String version() default "1.0.0.1";
}

因此,现在如果你再次使用相同的代码,可以忽略 version 元素,因为你知道默认情况下会提供值。

Computer code 代码清单 1.4:预定义值。
public class MyMethod
{
    @CodeDescription(author = "Sysop")
    public void doSomething()
    {
        ...
    }
}


Clipboard

待办事项
添加一些类似于 变量 中的练习。

华夏公益教科书