我需要解决的问题: if(Server.equals("99")){ strServerName = a.getSERVER99(); }else if(Server.equals("02")){ strServerName = a.getSERVER02(); } 能不能换个简单的方式写出来: num=99; strServerName=a.(getSERVER+num)(); http://lavasoft.blog.51cto.com/62575/61002 这是个测试用的例子,通过反射调用对象的方法。 TestRef.java import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; /** * Created by IntelliJ IDEA. * File: TestRef.java * User: leizhimin * Date: 2008-1-28 14:48:44 */ public class TestRef { public static void main(String args[]) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { Foo foo = new Foo("这个一个Foo对象!"); Class clazz = foo.getClass(); Method m1 = clazz.getDeclaredMethod("outInfo"); Method m2 = clazz.getDeclaredMethod("setMsg", String.class); Method m3 = clazz.getDeclaredMethod("getMsg"); m1.invoke(foo); m2.invoke(foo, "重新设置msg信息!"); String msg = (String) m3.invoke(foo); System.out.println(msg); } } class Foo { private String msg; public Foo(String msg) { this.msg = msg; } public void setMsg(String msg) { this.msg = msg; } public String getMsg() { return msg; } public void outInfo() { System.out.println("这是测试Java反射的测试类"); } } 控制台输出结果: 这是测试Java反射的测试类 重新设置msg信息!
反射调用 java_通过Java反射调用方法
最新推荐文章于 2023-06-10 09:00:00 发布