java自定义注解接口实现方案

2016-02-19 11:44 13 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的java自定义注解接口实现方案教程,一起来看看吧!超容易上手~

【 tulaoshi.com - 编程语言 】

java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。
注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。
1、元注解
元注解是指注解的注解。包括 @Retention @Target @Document @Inherited四种。
1.1、@Retention: 定义注解的保留策略
Java代码
代码如下:

@Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中,在class字节码文件中不包含
@Retention(RetentionPolicy.CLASS) //默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,
@Retention(RetentionPolicy.RUNTIME)//注解会在class字节码文件中存在,在运行时可以通过反射获取到

1.2、@Target:定义注解的作用目标
Java代码
代码如下:

@Target(ElementType.TYPE) //接口、类、枚举、注解
@Target(ElementType.FIELD) //字段、枚举的常量
@Target(ElementType.METHOD) //方法
@Target(ElementType.PARAMETER) //方法参数
@Target(ElementType.CONSTRUCTOR) //构造函数
@Target(ElementType.LOCAL_VARIABLE)//局部变量
@Target(ElementType.ANNOTATION_TYPE)//注解
@Target(ElementType.PACKAGE) ///包

elementType 可以有多个,一个注解可以为类的,方法的,字段的等等
1.3、@Document:说明该注解将被包含在javadoc中
1.4、@Inherited:说明子类可以继承父类中的该注解
下面是自定义注解的一个例子
2、注解的自定义
Java代码
代码如下:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface HelloWorld {
public String name() default "";
}

3、注解的使用,测试类
Java代码
代码如下:

public class SayHello {
@HelloWorld(name = " 小明 ")
public void sayHello(String name) {
System.out.println(name + "say hello world!");
}//www.heatpress123.net
}

4、解析注解
java的反射机制可以帮助,得到注解,代码如下:
Java代码
代码如下:

public class AnnTest {
public void parseMethod(Class? clazz) {
Object obj;
try {
// 通过默认构造方法创建一个新的对象
obj = clazz.getConstructor(new Class[] {}).newInstance(
new Object[] {});
for (Method method : clazz.getDeclaredMethods()) {
HelloWorld say = method.getAnnotation(HelloWorld.class);
String name = "";
if (say != null) {
name = say.name();
System.out.println(name);
method.invoke(obj, name);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
AnnTest t = new AnnTest();
t.parseMethod(SayHello.class);
}
}

来源:http://www.tulaoshi.com/n/20160219/1598395.html

延伸阅读
如果你想知道java annotation是什么?你可以先看看:“http://www.infoq.com/articles/Annotation-Hammer” 下面是我做的一个demo: 项目结构: 运行效果: ==================================================== 代码部分: 注:很多人会考虑这个问题,“这样做的目的是什么?我们可以做一个配置文件(xml,properties等),不是...
在PPT中放一些图片可以让PPT更生动,比如将一些照片或图片做成各种各样的形状,例如方形或其他形状中,来达到自己想要的效果。在PPT中可以借助自定义形状或艺术字实现填充自定义图片。如下图所示,本示例将这张图片填充的一个圆形中。 具体如何操作呢?以powerpoint2007为例,先在PPT页面中画一个形状,就像下面这个圆: 然后在形状填...
标签: Web开发
一、基本概念: 1.标签(Tag): 标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的 2.标签库(Tag library): 由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库。 3.标签库描述文件(Tag Library Desc...
--------------------------------------------------- -------自定义的TShockwaveflash.ocx---------------- --------------------------------------------------- --------------------------------------------------- 添加功能:对鼠标在 flash.ocx 中的信息捕获.---------- --------------------------------------------------- 可捕获鼠...
在用Authorware制作多媒体作品时,我们希望展示窗口和普通窗口一样可以最小化、关闭、拖动。要实现这一目的,最简单的方法是在设置文件属性时,保留Title Bar,但这样会影响作品的美观。如何制作自己的标题栏,使之和整个作品搭配协调,并且可以实现标题栏的功能呢?Tulaoshi.com 下面让我们来做一个类似“金山毒霸2002”的窗口(如...

经验教程

495

收藏

63
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部