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

nyf510127440

nyf510127440

2016-02-19 11:44

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的java自定义注解接口实现方案教程,一起来看看吧!超容易上手~
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);
}
}
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
java自定义注解接口实现方案

基于Java注解(Annotation)的自定义注解入门介绍

编程语言 网络编程
基于Java注解(Annotation)的自定义注解入门介绍

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

java Lucene 中自定义排序的实现

Web开发
java Lucene 中自定义排序的实现

PowerPoint借助自定义形状实现填充自定义图片

电脑网络
PowerPoint借助自定义形状实现填充自定义图片

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用javascript实现自定义标签

Web开发
用javascript实现自定义标签

IOS实现自定义布局瀑布流

编程语言 网络编程
IOS实现自定义布局瀑布流

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

使U盘更加安全的招数

使U盘更加安全的招数

java多线程中的异常处理机制简析

java多线程中的异常处理机制简析
下拉加载更多内容 ↓