首先明确一个概念:
annotation=注解 comment=注释 不要混淆了
a) Override注解表示子类要重写(override)父类的对应方法。
举例:OverrideTest.java
package com.shengsiyuan.annotation;
public class OverrideTest
{
@Override
//该注解表示该类重写了父类的方法
public String toString()
{
return "This is OverrideTest";
}
public static void main(String[] args)
{
OverrideTest test = new OverrideTest();
System.out.println(test);
}
}
b) Deprecated注解表示方法是不建议被使用的。
举例:DeprecatedTest.java
package com.shengsiyuan.annotation;
public class DeprecatedTest
{
@Deprecated
//该注解表示这个方法是废弃的,不建议被使用的
public void doSomething()
{
System.out.println("do something!");
}
public static void main(String[] args)
{
DeprecatedTest test = new DeprecatedTest();
test.doSomething();
// Date date = new Date();
//
// System.out.println(date.toLocaleString());
}
}
c) SuppressWarnings注解表示抑制警告。
举例:SuppressWarningsTest.java
package com.shengsiyuan.annotation;
import java.util.Date;
import java.util.Map;
import java.util.TreeMap;
public class SuppressWarningsTest
{
@SuppressWarnings({"unchecked", "deprecation"})
//该注解表示一些警告会被压制住
//unchecked表示不对集合没有使用泛型进行警告
//deprecation表示不对已经废弃的方法的使用进行警告
public static void main(String[] args)
{
Map map = new TreeMap();
map.put("hello", new Date());
System.out.println(map.get("hello"));
Date date = new Date();
System.out.println(date.toLocaleString());
}
}
关于自定义注解
自定义注解:当注解中的属性名为value时,在对其赋值时可以不指定属性的名称而直接写上属性值即可;除了value以外的其他值都需要使用name=value这种赋值方式,即明确指定给谁赋值。
举例如下:
(1)先定义一个注解
package com.shengsiyuan.annotation;
public @interface AnnotationTest
{
//注解里定义属性要在属性后面加一个括号
String[] value1() default "hello";//有一个默认值hello
EnumTest value2(); //注解里面的值也可定义为枚举类型
}
enum EnumTest
{
Hello, World, Welcome;
}
注意:当一个接口继承Annotation接口时,该接口依然只是一个接口,还不是注解类型,
要定义注解类型只有一种方式:通过@interface关键字,除此之外别无他法。
另外,Annotation本身也只是一个接口,并不是注解类型(可以查看API文档有 Annotation这个接口)
(2)引用上面的注解
package com.shengsiyuan.annotation;
@AnnotationTest(value2 = EnumTest.Welcome)
public class AnnotationUsage
{
@AnnotationTest(value1 = {"world", "ABCD"}, value2 = EnumTest.World)
public void method()
{
System.out.println("usage of annotation");
}
public static void main(String[] args)
{
AnnotationUsage usage = new AnnotationUsage();
usage.method();
}
}
最后有一点需要注意的是:
当我们使用@interface关键字定义一个注解时,该注解隐含地继承了java.lang.annotation.Annotation接口;如果我们定义了一个接口,并且让该接口继承自Annotation,那么我们所定义的接口依然还是接口而不是注解;Annotation本身是接口而不是注解。可以与Enum类比。
分享到:
相关推荐
Java 5 annotation 学习笔记Java 5 annotation 学习笔记Java 5 annotation 学习笔记
Hiberate Annotation学习笔记
Hibernate -annotation 学习笔记 详细总结~! Hibernate -annotation 学习笔记
一步步hibernate annotation练习笔记, 实例操作,从经验中学习
考研英语GCC 中文手册.rar J2EE interview book Photo Frame Genius 2.3 破解版 Hiberate Annotation学习笔记 2008年11月份希赛模拟题 multisim 入门帮助文件和元件参数 精通PHP5 光盘源文件 深入理解LINUX 第三版 ...
hibernate-annotation学习,笔记,现在正学,感觉还不错,分享一下。
Hibernate_annotation_学习笔记 第1课 课程内容 6 第2课 Hibernate UML图 6 第3课 风格 7 第4课 资源 7 第5课 环境准备 7 第6课 第一个示例Hibernate HelloWorld 7 第7课 建立Annotation版本的HellWorld 9 第8课 ...
JAVA Annotation学习示例 的一个简单示例 有源码 也有相关博客说明
Hibernate Annotation 笔记 总结 注解 注解事务,声明事务,详解。
spring使用annotation整合dwr笔记 spring使用annotation整合dwr笔记 spring使用annotation整合dwr笔记
hibernate annotation学习文档,帮助你学习hibernate
NULL 博文链接:https://zisefeiniao.iteye.com/blog/385100
Java Annotation学习整理
NULL 博文链接:https://starscream.iteye.com/blog/1066712
学习JPA——Hibernate_Annotation使用实例学习JPA——Hibernate_Annotation使用实例学习JPA——Hibernate_Annotation使用实例
Spring IOC Annotation 注入 学习实例
若依后台 ...├── common // 工具类 │ └── annotation // 自定义注解 │ └── config // 全局配置 │ └── constant // 通用常量 │ └── core // 核心控制 │ └── enums // 通用枚举