一、通过反射生成对象的类,必需有一个无参构造方法;
二、可以调用类的方法;
三、可以为属性赋值或者获取属性的值,且该属性有无get,set方法都可以。
package com.csair.test; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; public class Test { public static void main(String[] args) throws Exception { Class<?> clz = Class.forName("com.csair.test.A"); A aa = (A)clz.newInstance(); Field field = clz.getDeclaredField("name"); if(!Modifier.isPublic(field.getModifiers())) { field.setAccessible(true); } //获取属性 Object obj = field.get(aa); System.out.println(obj); //调用方法 Method method = clz.getDeclaredMethod("test", new Class[] {String.class}); if(!Modifier.isPublic(method.getModifiers())) { method.setAccessible(true); } method.invoke(aa, new Object[] {"ppt"}); } } class A{ private String name; public A() { name = "hello world"; } private void test(String name) { System.out.println(name); } }