Java反射简单实例
来源:互联网 发布:三观不正的日剧知乎 编辑:程序博客网 时间:2024/06/14 02:37
一、反射简单介绍
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
二、作用
1,反编译:.class–>.java
2,通过反射机制访问java对象的属性,方法,构造方法等;
三、简单实例
UserBean类:
public class UserBean { private String userId; private String userName; private String phone; public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; }}
测试类
public class Ttest { @SuppressWarnings("unchecked") public static <T> T test(String n) { Class<?> class1 = null; T t = null; try { class1 = Class.forName(n); // class1 = UserBean.class; t = (T) class1.newInstance(); // 获取所有的属性 Field[] fs = class1.getDeclaredFields(); StringBuffer buffer = new StringBuffer(); buffer.append(Modifier.toString(class1.getModifiers()) + " class " + class1.getSimpleName() + "{\n"); for (Field field : fs) { buffer.append("\t"); buffer.append(Modifier.toString(field.getModifiers()) + " "); buffer.append(field.getType().getSimpleName() + " "); buffer.append(field.getName() + ";\n"); } buffer.append("}"); System.out.println(buffer); Field idF = class1.getDeclaredField("userId"); idF.setAccessible(true); idF.set(t, "123456"); } catch (Exception e) { e.printStackTrace(); } return t; } public static void main(String[] args) { UserBean usBean = test("test.UserBean"); System.out.println(usBean.getUserId()); }}
运行效果如下:
public class UserBean{ private String userId; private String userName; private String phone;}123456
大体就是这样用,先记录一下,有时间再深入理解一下。
0 0
- JAVA反射简单实例
- java反射简单实例
- Java反射简单实例
- Java反射简单实例
- java反射机制简单实例
- Java中反射调用的简单实例
- java 反射机制(一)简单实例
- Java反射机制简介及简单实例
- Java中的反射和内省简单实例
- Java反射机制简析(简单实例)
- 反射简单实例
- 反射机制简单实例
- 反射简单讲解实例
- Java 反射机制 的超简单实例分析
- JAVA反射机制的简单实例和说明
- Java反射实例
- java反射实例
- Java反射经典实例
- Map遍历之entrySet()
- 一维动态数组的实现(c语言)
- c语言的特点
- svn常见问题,报错,命令及我的总结
- java 字符串截取的几种方式
- Java反射简单实例
- 100多个纯CSS动画图标
- unity中关于异步loading场景的加载
- 【总结】Amazon Kinesis实时数据分析最佳实践分享
- 欢迎使用CSDN-markdown编辑器
- Python - 实用的内置函数zip
- [leetcode] 300. Longest Increasing Subsequence
- jsp动作元素:<jsp:forward>动作元素
- HDU 1492 The number of divisors(约数) about Humble Numbers