Method 클래스 invoke 메서드 사용
2752 단어 Method invoke
public Object invoke(Object obj, Object... args)
매개변수:
obj: 기본 방법을 호출하는 대상입니다. 반드시 실례화 대상이어야 합니다
args: 방법 호출에 사용되며 object의 수조입니다. 매개 변수가 여러 개 있을 수 있기 때문입니다.
반환:
매개 변수args를 사용하여 obj에 이 대상이 표시하는 방법을 파견한 결과입니다.
voke 방법 중의obj는 하나의 실례화 대상으로 대상의 모든 속성의 값을 직접 되돌릴 수 있다.
뒤에 있는agrs까지 합치면 결과는 똑같아요.
예: StudentDemo.class
4
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());
}
}