Java反射
package com.qcby;
public class Person {
private String name;
public Integer age;
Character sex;
protected Integer height;
public Person() {
}
public Person(String name) {
this.name = name;
}
public Person(String name, Integer age, Character sex, Integer height) {
this.name = name;
this.age = age;
this.sex = sex;
this.height = height;
}
public void run() {
System.out.println("人跑的很快");
}
private void fly(String name) {
System.out.println(name+"很会飞");
}
int gerAge() {
return age;
}
void method(Integer age , Character sex) {
System.out.println(age + " " + sex);
}
}
package com.qcby.user;
//成员变量赋值,输出值,执行构造器,运行方法
public class User {
private String name;
public Integer age;
Character sex;
protected Integer height;
public User() {
}
public User(String name) {
this.name = name;
}
private User(String name, Integer age, Character sex, Integer height) {
this.name = name;
this.age = age;
this.sex = sex;
this.height = height;
}
public void run() {
System.out.println("人跑的很快");
}
private void fly(String name) {
System.out.println(name+"很会飞");
}
int getAge() {
return age;
}
void method(Integer age , Character sex) {
System.out.println(age + " " + sex);
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", sex=" + sex + ", height=" + height + "]";
}
}
package com.qcby.user;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchFieldException {
Class pclass = Class.forName("com.qcby.user.User");
Constructor userconstructor = pclass.getDeclaredConstructor();
User user = (User) userconstructor.newInstance(null);
Field namefield = pclass.getDeclaredField("name");
namefield.setAccessible(true);
namefield.set(user, "qiqi");
Field agefield = pclass.getDeclaredField("age");
agefield.set(user, 1);
Field sexfield = pclass.getDeclaredField("sex");
sexfield.set(user, '2');
Field heightfield = pclass.getDeclaredField("height");
heightfield.set(user, 11);
System.out.println(user.toString());
Method runmethod = pclass.getDeclaredMethod("run", null);
Method flymethod = pclass.getDeclaredMethod("fly", String.class);
flymethod.setAccessible(true);
Method getAgemethod = pclass.getDeclaredMethod("getAge", null);
Method methodmethod = pclass.getDeclaredMethod("method", Integer.class,Character.class);
runmethod.invoke(user, null);
flymethod.invoke(user, "qiqi");
getAgemethod.invoke(user, null);
methodmethod.invoke(user, 11,'a');
}
}
原文地址:https://blog.csdn.net/a624135_/article/details/142453774
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!