`
hacker_zxf
  • 浏览: 147638 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

annotation 例子

阅读更多
@Retention : RetentionPolicy. SOURCE,CLASS,RUNTIME
@Target :ElementType.TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE,ANNOTATION_TYPE,PACKAGE

@Retention(RetentionPolicy.RUNTIME)
@Target(value = ElementType.FIELD)
public @interface In {

    /**
     * 范围
     * 
     * @return
     */
    String scope();

    /**
     * 值
     * 
     * @return
     */
    String value();
}



@Retention(RetentionPolicy.RUNTIME)
@Target(value = ElementType.TYPE)
public @interface UserInfo {

    String name();

    String age();
}



@UserInfo(name = "sefer", age = "27")
public class User {

    @In(scope = "request", value = "hangzhou")
    String address;

    public String getAddress() {
	return address;
    }

    public void setAddress(String address) {
	this.address = address;
    }
}




public class GetUser {

    public static void main(String[] args) {
	AnnotatedElement an = User.class;
	boolean isUserInfo = an.isAnnotationPresent(UserInfo.class);

	if (isUserInfo) {
	    UserInfo userInfo = an.getAnnotation(UserInfo.class);
	    String name = userInfo.name();
	    String age = userInfo.age();
	    System.out.println("name: " + name);
	    System.out.println("age: " + age);
	}

	User user = new User();

	Field[] fields = user.getClass().getDeclaredFields();

	for (Field field : fields) {
	    // 重要:避免java虚拟机检查对私有成员的访问权限
	    field.setAccessible(true);
	    boolean isIn = field.isAnnotationPresent(In.class);
	    if (isIn) {
		In in = field.getAnnotation(In.class);
		System.out.println(field.getName() + "value: " + in.value());
		System.out.println(field.getName() + " save scope: "
			+ in.scope());

	    }
	}
    }
}


分享到:
评论

相关推荐

    自定义Annotation例子

    以下是一个简单的自定义Annotation例子: ```java public @interface MyAnnotation { String value() default ""; } ``` 这里的`MyAnnotation`就是一个自定义注解,包含一个默认值为空字符串的`value`元素。你...

    quartz_annotation 例子

    在这个"quartz_annotation"的例子中,我们将探讨如何利用注解(Annotation)的方式来配置和控制Quartz作业。 在传统的Quartz使用中,我们通常通过XML配置文件或者程序代码来定义Job类和Trigger,但随着Java EE和...

    struts2 使用Annotation 配置的小例子

    在这个小例子中,我们将深入探讨如何利用Struts2的Annotation配置来构建一个简单的应用。 首先,让我们了解什么是Annotation。在Java中,Annotation是一种元数据,它提供了一种安全的方式向编译器、JVM或者第三方...

    Java Annotation的讲解和例子

    在这个例子中,`MyAnnotation`是自定义注解,`MyClass`使用了这个注解。`AnnotationProcessor`是处理器,可以检查并处理带有`MyAnnotation`的类。 总结,Java注解为开发者提供了一种优雅的方式来添加元数据,简化了...

    自定义的Annotation

    在这个例子中,我们首先检查传入的`annotation`是否是我们自定义的类型,然后创建或复用一个`MKAnnotationView`,并设置其`image`属性为我们准备的图片。`canShowCallout`属性为`true`时,可以显示Callout(气泡),...

    annotation

    在这个例子中,`@Retention(RetentionPolicy.RUNTIME)`表明`CustomAnnotation`将在运行时保留,因此我们可以在`main`方法中通过反射获取到该注解的信息。 最后,`Demo.java`可能包含使用上述注解的实际业务逻辑。...

    Hibernate Annotation 中文文档

    在这个例子中,`User`类代表了`users`表,`id`是主键,`username`是表的一个列,`role`是与`Role`类的一对多关联。 **4. 注解的优势** - **简洁性**:注解使得ORM配置与实体类代码紧密集成,减少了XML配置文件的...

    什么是Annotation?

    ### 什么是Annotation? #### 一、Annotation的概念 在Java 1.5版本中引入了一个重要的新特性——**Annotation**(注解)。Annotation本质上是一种元数据(即关于数据的数据),它提供了一种机制来关联程序元素...

    annotation 详解

    下面的例子展示了如何使用`@Override`注解: ```java public class CustomClass { @Override public String toString() { return "customObject"; } } ``` 如果`toString()`方法没有正确地重写了父类的...

    annotationProcessor实例demo

    在Java开发中,`AnnotationProcessor` 是一个强大的工具,它允许开发者在编译期间自动...在`AnnotationProcessorDemo`这个例子中,你可以学习到如何创建并使用一个简单的注解处理器,从而更好地理解和应用这一技术。

    sping hibernate Annotation(注释配置) demo(例子)

    总结来说,这个 "Spring Hibernate Annotation demo" 展示了如何在 Spring 框架中使用注解配置来管理依赖,以及如何利用 Hibernate 的注解进行数据持久化。同时,它还涉及到了 Flex 前端与后端的交互。通过学习这个 ...

    struts annotation Hello World

    在本示例"struts annotation Hello World"中,我们关注的是Struts框架与注解(Annotation)的结合使用。注解是一种元数据,它提供了在代码中嵌入元信息的方式,使得框架能够自动生成配置,简化开发过程。 首先,让...

    annotation详解

    这个例子定义了一个名为`MyAnnotation`的注解,它将在运行时可用,并且可以应用于方法。 ## 四、注解处理器 注解处理器是在编译时自动执行的工具,可以用来生成额外的源代码或进行其他编译时检查。`javax....

    示例代码:java spring【AnnotationMetadata】的简单使用例子

    在这个简单的使用例子中,我们将深入探讨如何使用`AnnotationMetadata`来解析类上的注解,这对于理解Spring的组件扫描和自动配置机制至关重要。 首先,`AnnotationMetadata`接口位于`org.springframework.core.type...

    annotationProcessor.rar

    在Java编程语言中,注解(Annotation)是一种元数据,它提供了一种安全的方法来将信息附加到代码中,而不改变代码的行为。注解处理器则是注解系统的关键组成部分,它们在编译期间运行,可以分析源代码中的注解并自动...

    java annotation demo

    在这个例子中,`MyAnnotation`有一个默认值为空字符串的`value`元素。注解可以包含零个或多个元素,每个元素都有类型和可选的默认值。 接下来,我们可以在类、方法或其他元素上使用这个注解: ```java @...

    struts2 Annotation 版本学习心得与例子

    Struts2的“零配置”特性是Struts2的新功能,可能会出现一些小Bug,所以企业开发者请慎重使用该特性, ...如果用的是Annotation的Struts2,就要将struts.xml去掉,否则即使将struts.xml中的内容注销,也会报错;

    最简单的android annotation demo

    Android注解(Annotation)是Java语言的一个特性,它在Android开发中被广泛应用,尤其是在简化代码、提高可维护性以及提供元数据等方面起到了重要作用。在这个"最简单的android annotation demo"中,我们将深入理解...

Global site tag (gtag.js) - Google Analytics