关键字:Class invoke Accessible
package com.g.demo;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Demo9 {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException, NoSuchFieldException {
Class<?> c1 = Class.forName("com.g.demo.User");
// User user = (User)c1.newInstance();
// System.out.println(user);
// Constructor<?> constructor = c1.getDeclaredConstructor(String.class,int.class,int.class);
// Object user2 = constructor.newInstance("jjj",02,100);
// System.out.println(user2);
User user3 = (User)c1.newInstance();
Method setName = c1.getDeclaredMethod("setName", String.class);
setName.invoke(user3, "kk");
System.out.println(user3.getName());
User user4 = (User)c1.newInstance();
Field name = c1.getDeclaredField("name");
name.setAccessible(true);
name.set(user4, "hh");
System.out.println(user4.getName());
}
}
kk
hh