Java反射浅谈
2015-08-11 21:00
429 查看
反射机制是一种程序自我分析的能力。用于获取一个类的类变量,构造函数,方法,修饰符。
优点:运行期类型的判断,动态类加载,动态代理使用反射。
缺点:性能是一个问题,反射相当于一系列解释操作,通知jvm要做的事情,性能比直接的java代码要慢很多。
Java访问和修改私有成员变量
输出结果:
name : 小强
我是小明,今年24岁
优点:运行期类型的判断,动态类加载,动态代理使用反射。
缺点:性能是一个问题,反射相当于一系列解释操作,通知jvm要做的事情,性能比直接的java代码要慢很多。
Java访问和修改私有成员变量
public class Student { private String name; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
import java.lang.reflect.Field; public class FieldTest { public static void main(String[] args) { try { Student student = new Student(); student.setName("小强"); student.setAge("24"); System.out.println("name : " + student.getName()); Class<Student> stuClazz = Student.class; Field nameFd = stuClazz.getDeclaredField("name"); // Accessible属性设置为true,才能访问和修改类中的成员变量 nameFd.setAccessible(true); nameFd.set(student, "小明"); System.out.println("我是" + nameFd.get(student) + ",今年" + student.getAge() + "岁"); } catch (Exception e) { e.printStackTrace(); } } }
输出结果:
name : 小强
我是小明,今年24岁
相关文章推荐
- java学习笔记-----QQ项目-------对象流的使用
- java 基础
- 简单解决java.lang.IllegalStateException: getOutputStream() has already been called for this
- JAVA基础一大堆0810数据库小练习
- java中字符串与数字的互相转换
- Gson 序列化Javabean的时候要注意的地方
- struts2-ValueStack详解
- java学习之数组(一)
- Spring框架中读取xml文件的两种不同方式
- Java基础---抽象类和接口
- Spring配置文件外部化配置及.properties的通用方法
- Java中的equals和==异同,你知道多少?
- 40 lines of java code Map convert to JSON
- Java 流
- 开始使用 Spring Data JPA
- java 后台线层也叫守护线层
- [置顶] 100 High-Quality Java Developers’ Blogs
- 深入 理解 Statement 和 PreparedStatement
- JavaWeb学习总结——文件上传和下载
- JAVA学习1_JAR文件包及jar命令详解