首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java反射1 动态修改类的属性

2013-12-20 
Java反射一 动态修改类的属性Person.javaMymain.javapackage fansheimport java.lang.reflect.Fieldimpo

Java反射一 动态修改类的属性
Person.java



Mymain.java

package fanshe;import java.lang.reflect.Field;import java.lang.reflect.Method;public class Mymain {public static void main(String[] args) throws Exception{Mymain.ceratePerson("fanshe.Person", "name", "Peter", "age", 30, "info");}private static void ceratePerson(String className, String namefield, String namevalue,  String agefield, int agevalue, String methodname) throws Exception{Class clazz = Class.forName(className);Object o = clazz.newInstance();Field field_name = clazz.getDeclaredField(namefield);field_name.setAccessible(true);field_name.set(o, namevalue);Field field_age = clazz.getDeclaredField(agefield);field_age.setAccessible(true);field_age.setInt(o, agevalue);Method method = clazz.getDeclaredMethod(methodname);method.setAccessible(true);String result =  (String)method.invoke(o);System.out.println(result);}}


运行结果:
My name is Peter, I'm 30 years old.

热点排行