`

Method类invoke方法的使用

    博客分类:
  • j2ee
阅读更多
java.lang.reflect.Method
 public Object invoke(Object obj, Object... args)
参数:
obj:从中调用底层方法的对象,必须是实例化对象
args: 用于方法调用,是一个object的数组,因为参数有可能有多个
返回:
使用参数args在obj上指派该对象所表示的方法的结果。
invoke方法中的obj就是一个实例化对象,可以直接返回对象的中每个属性的值。
加上后面的agrs结果是一样的。
例如:StudentDemo.class
package com.payeco.demo;

public class StudentDemo {
	private int id;
	private String name;
	private String sex;
	private String age;
	private String brithday;
	private String address;

	public StudentDemo() {
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	public String getBrithday() {
		return brithday;
	}

	public void setBrithday(String brithday) {
		this.brithday = brithday;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

}
 测试代码:demo.class
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Demo {
	public static void main(String[] args) throws  IllegalArgumentException, IllegalAccessException, InvocationTargetException {
		StudentDemo sd=new StudentDemo(); 
		sd.setId(1);
		sd.setName("测试invoke");
		sd.setSex("未知");
		sd.setAge("10000");
		sd.setBrithday("19920205");
		sd.setAddress("湖南");
		Object[] agrs = new Object[]{};
		StringBuilder sb = new StringBuilder();
		sb.append("<Object.XmlString> start");
		for (Method m : sd.getClass().getMethods()) {
			if (m.getName().startsWith("get")) {
				System.out.println(m.getName());
				sb.append("  <" + m.getName().substring(3) + ">");
				sb.append(m.invoke(sd,agrs));
				System.out.println("---"+m.invoke(sd, args));
			}
		}
		System.out.println(sb.toString());
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics