`
supben
  • 浏览: 326530 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java注解原理

 
阅读更多
写一个类名为 ID 的注解
@Target({METHOD, FIELD})
@Retention(RUNTIME)
public @interface Id {}



根据反射得到字段,然后isAnnotationPresent判断这个字段上面是否标识了Id这个注解
如果标识了,就如何如何。。。。
		Field[] fields = clazz.getDeclaredFields();
		for (Field f : fields) {
			if (f.isAnnotationPresent(Id.class)) {
				// 业务逻辑			}
		}




带参数的注解类
@Target({METHOD, FIELD}) 
@Retention(RUNTIME)
public @interface Column {

    /**
     * (Optional) The name of the column. Defaults to 
     * the property or field name.
     */
    String value() default "";


可以用如下方式取值
Column column = (Column) f.getAnnotation(Column.class);
				if(!column.value().isEmpty())
					mapNames.put(f.getName(), column.value());
				else{
					mapNames.put(f.getName(), f.getName());
				}


注解本身没任何意义,一般配合扫包使用。。。

未完。。。
2
6
分享到:
评论
10 楼 mao_siyu 2015-12-21  
谢谢了,精简明了,java这东西要想学精了 还是得从自身的思想 开始,楼主以经说明怎么使用了,其它 的靠自己去 研究,我感觉写的不错。
9 楼 Hibernate1 2014-09-24  
描述的有点空旷
7 楼 Lixh1986 2014-09-01  
这篇很好:
http://www.cnblogs.com/Johness/archive/2013/04/17/3026689.html
6 楼 Lixh1986 2014-09-01  
valenon 写道
张延龙地盘 写道
这是原理?伙计?

我觉得人家这就是原理,虽然说描述的简单了一点,但是让我这之前不知道注解为何物的人突然就说注解也就这么回事。要不然你说点和他不一样的原理?


个人认为,要理解注解,先得理解java的反射机制,和反射是做什么用的。
单纯讲注解的话,楼主写的简明扼要。很好。
区区一个小注解,也要长篇大论么?
5 楼 狂奔的子弹 2014-06-03  
很有帮助~
4 楼 valenon 2014-06-01  
张延龙地盘 写道
这是原理?伙计?

我觉得人家这就是原理,虽然说描述的简单了一点,但是让我这之前不知道注解为何物的人突然就说注解也就这么回事。要不然你说点和他不一样的原理?
3 楼 张延龙地盘 2014-05-28  
这是原理?伙计?
2 楼 juwend 2013-10-20  
原理二字还是谨慎点用。。
1 楼 supermagician 2013-09-16  
标题很大,内容很空。
哥子多整点理论上去啊。

相关推荐

Global site tag (gtag.js) - Google Analytics