java反射
来源:互联网 发布:北京赛车pk10软件 编辑:程序博客网 时间:2024/06/12 03:06
JAVA反射使用手记
本篇文章为在工作中使用JAVA反射的经验总结,也可以说是一些小技巧,以后学会新的小技巧,会不断更新。本文不准备讨论JAVA反射的机制,网上有很多,大家随便google一下就可以了。
在开始之前,我先定义一个测试类Student,代码如下:
- package chb.test.reflect;
- public class Student {
- private int age;
- private String name;
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public static void hi(int age,String name){
- System.out.println("大家好,我叫"+name+",今年"+age+"岁");
- }
- }
一、JAVA反射的常规使用步骤
反射调用一般分为3个步骤:
- 得到要调用类的class
- 得到要调用的类中的方法(Method)
- 方法调用(invoke)
代码示例:
二、方法调用中的参数类型
在方法调用中,参数类型必须正确,这里需要注意的是不能使用包装类替换基本类型,比如不能使用Integer.class代替int.class。
如我要调用Student的setAge方法,下面的调用是正确的:
而如果我们用Integer.class替代int.class就会出错,如:
jvm会报出如下异常:
三、static方法的反射调用
static方法调用时,不必得到对象示例,如下:
四、private的成员变量赋值
如果直接通过反射给类的private成员变量赋值,是不允许的,这时我们可以通过setAccessible方法解决。代码示例:
运行如上代码,系统会报出如下异常:
解决方法:
其实,在某些场合下(类中有get,set方法),可以先反射调用set方法,再反射调用get方法达到如上效果,代码示例:
阅读全文
0 0
- 【反射】JAVA反射机制
- JAVA 反射
- java 反射
- Java反射
- java反射
- java反射
- JAVA反射
- java 反射
- Java 反射
- java 反射
- Java反射
- java反射
- JAVA 反射
- java 反射
- Java反射
- java反射
- java 反射
- java 反射
- java基础——字符串中的反转Reverse问题(面试必备)
- 互联网金融产品需要什么样的产品经理?
- Linux电源管理(13)_Driver的电源管理
- PMCAFF携手百度,干货从未如此精彩(现场快讯)
- FAQ(10):Type interface com.smbms.dao.UserMapper is not known to the MapperRegistry.
- java反射
- 优秀产品经理(CEO)必须get的财税知识
- 重识微信:花 8 小时列举微信功能
- linu禁止root远程登录
- 搜索引擎基本原理,产品知识普及帖
- PMCAFF 八周年老友会倒计时 | 北京活动
- PHP学习笔记6(数组)
- Python的发展历史
- Apple Pay与银联的联姻,是战略,不是产品