Java注解(Annotations),也被称为元数据(Metadata),是Java 5.0中引入的一种注释机制。它们能够为程序元素(类、方法、变量等)打上标记,并可以在编译、运行时以及部署时进行处理,从而使得程序可以通过注解来获取额外的信息或者进行一些特殊的操作。
Java注解的语法采用“@注解名称(参数列表)”的形式,其中@称为注解标记,注解名称是注解类型的名称。在参数列表中,注解可以包含多个属性,每个属性都是以名称=值的形式给出详细的描述信息。
下面是几个Java注解的例子:
@Override: 该注解告诉编译器该方法是一个覆盖了父类方法的方法,如果该方法不是覆盖父类方法而被标注,则编译器会报错。
@SuppressWarnings: 该注解告诉编译器忽略指定的警告信息,这对于一些遗留代码或者某些不太严谨的库文件非常有用。
@Deprecated: 该注解告诉编译器此处代码已被废弃,建议使用其他功能或者替代方案,当程序中使用了被标注的代码时,编译器会发出警告。
@FunctionalInterface: 该注解表示接口是一个函数接口,该接口只包含一个抽像方法,可以被用于Lambda表达式。
@Test: 该注解指定一个方法作为测试方法,JUnit测试框架会自动识别并运行被标注的方法。
总之,Java注解在Java开发中扮演着越来越重要的角色,使用注解可以提高代码的简洁程度,降低代码维护成本,同时提高代码的可读性和可维护性。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
String value();
}
答案:该注释是一个自定义注释,用于方法上,可以指定一个字符串值。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyAnnotation {
String author() default "unknown";
String date();
}
答案:该注释是一个自定义注释,用于类上,可以指定类的作者和日期。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ReadOnly {}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Singleton {}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface TimeLimit {
int seconds() default 5;
}