您的位置:首页 > 编程语言 > Java开发

Java Annotation Examples

2017-07-21 13:14 288 查看

Define Annotaion

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface JavaFileInfo
{
String author() default "unknown";
String version() default "0.0";
}


Use Annotation

@JavaFileInfo
public class DemoClass
{
@JavaFileInfo(author = "Lokesh", version = "1.0")
public String getString()
{
return null;
}
}


Processing Annotations Using Reflection

import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Method;

public class ProcessAnnotationExample
{
public static void main(String[] args) throws NoSuchMethodException, SecurityException
{
new DemoClass();
Class<DemoClass> demoClassObj = DemoClass.class;
readAnnotationOn(demoClassObj);
Method method = demoClassObj.getMethod("getString", new Class[]{});
readAnnotationOn(method);
}

static void readAnnotationOn(AnnotatedElement element)
{
try
{
System.out.println("\n Finding annotations on " + element.getClass().getName());
Annotation[] annotations = element.getAnnotations();
for (Annotation annotation : annotations)
{
if (annotation instanceof JavaFileInfo)
{
JavaFileInfo fileInfo = (JavaFileInfo) annotation;
System.out.println("Author :" + fileInfo.author());
System.out.println("Version :" + fileInfo.version());
}
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}


Execute Output

Finding annotations on java.lang.Class
Author :unknown
Version :0.0

Finding annotations on java.lang.reflect.Method
Author :Lokesh
Version :1.0


References

Complete Java Annotations Tutorial

Compile Time Validation using Java Annotation Processor

Lesson: Annotations
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java ydb spark annotaion