Java利用反射操作成员变量,方法
来源:互联网 发布:现在做什么比较好知乎 编辑:程序博客网 时间:2024/05/18 02:37
import java.util.regex.Pattern;
public class Test1 {
private String name;
private int age;
private String sex;
public String getName() {
return name;
}
public Test1() {
super();
}
public Test1(String name, int age, String sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Test1 [name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
}
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import java.lang.reflect.Type;
public class Test2fanshe {
public static void main(String[] args) throws Exception {
Object object = Class.forName("Test1").newInstance();
System.out.println("className:" + object.getClass());
Class cls = object.getClass();
// 获取成员变量
Field[] declaredFields = cls.getDeclaredFields();
System.out.println("declaredFields.length:" + declaredFields.length);
for (Field x : declaredFields) {
System.out.println("FieldsName:" + x.getName());
System.out.println("FieldsType:" + x.getType());
}
System.out.println("--------------------------------------------------------------------------");
// 获得成员方法列表
Method[] declaredMethods = cls.getDeclaredMethods();
System.out.println("declaredMethods.length:" + declaredMethods.length);
for (Method x : declaredMethods) {
System.out.println("MethodName:" + x.getName());
System.out.println("ReturnType:" + x.getReturnType());
Parameter[] parameters = x.getParameters();
for (Parameter x1 : parameters) {
System.out.println("ParameterName:" + x1.getName());
System.out.println("ParameterType:" + x1.getType());
System.out.println("=============================================");
}
if (x.getName().equals("setName")) {
x.invoke(object, "王晨");
}
if (x.getName().equals("setAge")) {
x.invoke(object, 11);
}
if (x.getName().equals("setSex")) {
x.invoke(object, "人妖");
}
System.out.println(object);
}
}
}
- Java利用反射操作成员变量,方法
- Java利用反射机制遍历成员变量
- Java笔记——利用反射机制获取成员变量及成员方法
- java中反射操作公共成员变量
- java中反射操作私有成员变量
- 使用java反射操作类的构造函数,成员变量和成员方法
- java反射2-获取构造方法、成员变量、成员方法
- java利用反射来调用一个类的私有方法和成员变量
- java开发之成员变量及成员方法的反射
- 黑马程序员--Java基础加强--16.利用反射操作泛型V【通过Constructor反射解析泛型构造方法】【通过Field反射解析泛型成员变量】【个人总结】
- 通过反射操作类方法,类的成员变量
- 利用反射操作对象的成员和方法
- java反射之获取方法,成员变量,构造方法
- 【Java】java使用反射访问对象方法和成员变量
- 利用反射机制操作私有成员变量(private修饰的变量)
- 反射(成员方法和成员变量)
- java反射的应用 构造方法 成员变量
- Java通过反射访问私有成员变量和私有方法
- OTA和Recovery系统升级流程介绍
- 集合(补充1)
- 182. Duplicate Emails
- 神经网络入门教程
- 创新工场笔试题
- Java利用反射操作成员变量,方法
- mysql应该关注的状态变量
- 关于sql语句的一些说明
- caioj1041:递归11(售货员的难题)
- NULL、0、nullptr的区别?
- 算法竞赛入门经典 第二版 习题9-1最长滑雪路径 Longest Run on a Snowboard uva10285
- spring,mybatis事务管理配置与@Transactional注解使用[转]
- scala中spark错误 Error initializing SparkContext
- 为什么Git 比 SVN 好