文档章节

浅谈Java的反射机制

尧Yannick
 尧Yannick
发布于 2016/04/22 14:39
字数 192
阅读 4
收藏 0


浅谈Java的反射机制

通过类的.class文件生成该类对象

如下:

UserManager u = (UserManager)ClassUtil.initClass(UserManager.class);


实现:

public class ClassUtil {
public static Object initClass(Class<? extends Object> c) throwsInstantiationException, IllegalAccessException
     {
          returnc.newInstance();
     }
}


自定义注解利用反射找到被注解标记的属性

1定义一个UserId的注解:

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UserId {
 
}


2在我们的类中标识要找的属性:

public class Info {
        @UserId
        publicint id;
}


3利用反射找到该类被自定义注解标识的属性

public static int getUseId(Object obj){
        Field[]fields=obj.getClass().getFields();
        for(Fieldf:fields)
        {
               if(f.getAnnotation(UserId.class)!=null){
                       f.setAccessible(true);
                       try{
                              id=f.getInt(obj);
                       }catch (IllegalAccessException e) {
                              e.printStackTrace();
                       }catch (IllegalArgumentException e) {
                              e.printStackTrace();
                          }
                  }
        }
        returnid;
}


4使用方式

Info info=new Info();
info.id=10010;
int id=ClassUtil.getUseId(info);


返回的id就是info中被我们注解的属性值。

© 著作权归作者所有

共有 人打赏支持
尧Yannick
粉丝 0
博文 16
码字总数 6692
作品 0
武汉
私信 提问
Android 4.4(KK)中利用APP打开关闭数据流量

在Android 4.4中,在app中打开或关闭数据流量 如果有这方面需求可以参考。 思路 利用JAVA的反射机制(Reflection),来调用CONNECTIVITY_SERVICE完成相关操作。 关于JAVA的反射机制,可以参考...

W_X
2014/12/17
0
4
【免费】全网独家:详解Java反射机制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/silencezwm/article/details/85115991 【免费】全网独家:这是一份非常值得珍藏的Android知识体系!!! 本文...

silencezwm
2018/12/20
0
0
最最最常见的Java面试题总结——第二周

String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的? String和StringBuffer、StringBuilder的区别 可变性   String类中使用字符数组:保存字符串,所以String对象是...

Amsour丶
2018/08/13
0
0
黑马程序员--JDK1.5新特性(二)

----------------------android培训、java培训、期待与您交流!---------------------- Java反射机制定义: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性、方法...

长平狐
2013/07/01
53
0
云妹总结了一些最最最常见的Java面试题供大家参考

云妹导读:String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的? String和StringBuffer、StringBuilder的区别 可变性 String类中使用字符数组:private final cha...

阿里云科技快讯
2018/08/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 2.x基础教程:快速入门

简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让...

程序猿DD
昨天
2
0
SpringSecurity认证流程源码级详解

SpringSecurity认证流程源码级详解 认证流程说明 认证结果如何在多个请求之间共享 获取认证用户信息

chendom
昨天
1
0
C语言中的volatile——让我保持原样

volatile译为:易变的。这不是和题目的让我保持原样矛盾了吗?其实不然,在变量前加上该关键字修饰,确实是告诉编译器,这个变量是一个容易改变的变量,不要对它进行优化,每次都要到变量的地...

天王盖地虎626
昨天
1
0
五、RabbitMQ的消息属性(读书笔记)

简介 当使用RabbitMQ发布消息时,消息又AMQP规范中的三个低层帧类型组成: Basic.publish方法帧; 内容头帧; 消息体帧; 这三种帧类型按顺序一起工作,以便消息传递时完好无损。 其中,内容...

XuePeng77
昨天
1
0
JavaEE开发的颠覆者SpringBoot实战摘要笔记

一、注解理解 1.spring注解 1)@Configuration/@ComponentScan/@Bean注解实现java方式的配置。 @Configuration代替xml文件 @ComponentScan指定扫描范围 @Bean代替bean标签 2)@Bean、@Componen...

啃不动地大坚果
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部