读书人

[转载]Java引语-源码解析

发布时间: 2012-08-22 09:50:35 作者: rapoo

[转载]Java注解--源码解析

注解提供了一种结构化的,并且具有类型检查能力的新途径,从而使程序员能够为代码加入元数据,而不会导致代码杂乱且难以理解。如:@Override 说明继承类或实现接口方法重载。

?

注解是在实际的源代码级别保存所有的信息,而不是某种注释性的文字。

?

在Hibernate,EJB,JPA中Column实现和应用程序案例:

?

Column.java

?

?

控制台显示的结果为:

name 20 true
description 100 false

?

应用程序简单应用源码解析:

1. Field[] fields = UseCase.class.getDeclaredFields();

通过反射,UseCase.class.getDeclaredFields()获得UseCase类的class对象的声明的域。

AnnotationParser.getDeclaredFields(...)方法

?

?

AnnotationParser.parseAnnotation(...)方法

?

?

?AnnotationParser.annotationForMap(...)方法

?

public static Annotation annotationForMap(Class paramClass, Map<String, Object> paramMap) { return (Annotation)Proxy.newProxyInstance(paramClass.getClassLoader(), new Class[] { paramClass }, new AnnotationInvocationHandler(paramClass, paramMap)); // 创建@Column对象 } ?

?

看过源码实现之后,其实就是通过Java的反射机制和代理类来创建指定域(方法或者类)的注解接口对象以及他的属性。

?

读书人网 >编程

热点推荐