import java.lang.reflect.*;
/**
* 测试动态方法
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class dynamicMethod {
public dynamicMethod() {
}
public static void main(String[] args) {
dynamicMethod ttt = new dynamicMethod();
ttt.showme0();
try {
//Method m = ttt.getClass().getMethod("test", new Class[0]);
//m.invoke(ttt, new Object[0]);
ttt.getClass().getMethod("test", new Class[0]).invoke(ttt, new Object[0]);
String realArgs = "带有一个参数";
Class[] class1 = {
realArgs.getClass()};
Object[] object1 = {
realArgs};
ttt.getClass().getMethod("test", class1).invoke(ttt, object1);
System.out.println(ttt.getClass().getMethod("getString", new Class[0]).invoke(ttt, new Object[0]));
}
catch (Exception ex) {}
}
public void showme0() {
try {
dynamicMethod t = new dynamicMethod();
Class c = t.getClass();
Class[] cargs = new Class[2];
String[] realArgs = {"第一个参数", "第二个参数"};
cargs[0] = realArgs.getClass();
Integer in = new Integer(2);
cargs[1] = in.getClass();
Method m = c.getMethod("test", cargs);
Object[] inArgs = new Object[2];
inArgs[0] = realArgs;
inArgs[1] = in;
m.invoke(t, inArgs);
}
catch (Exception e) {
System.out.println(e);
}
}
public void showme1() {
try {
Class[] cargs = new Class[2];
String[] realArgs = {"第一个参数", "第二个参数"};
cargs[0] = realArgs.getClass();
Integer in = new Integer(2);
cargs[1] = in.getClass();
Method m = getClass().getMethod("test", cargs);
Object[] inArgs = new Object[2];
inArgs[0] = realArgs;
inArgs[1] = in;
m.invoke(this, inArgs);
}
catch (Exception e) {
System.out.println(e);
}
}
public void showme2() {
try {
Method m = this.getClass().getMethod("test", new Class[0]);
m.invoke(this, new Object[0]);
}
catch (Exception e) {
System.out.println(e);
}
}
public void test(String[] str, Integer stri) {
for (int j = 0; j < str.length; j++) {
System.out.println(str[j]);
}
System.out.println(stri.intValue());
}
public void test() {
System.out.println("没有参数的调用");
}
public void test(String strin) {
System.out.println(strin);
}
public String getString(){
String tempStr="这是取回来的字符串";
return tempStr;
}
}