自学内容网 自学内容网

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)!