关于下面的invoke()方法,有错误,请指正import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class TestReflection { public static void main(String[] args) {
String s = "T";
Class c = null;
Object o = null;
Method[] methods = null;
try {
c = Class.forName(s);
o = c.newInstance();
methods = c.getMethods();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
for(Method m :methods) {
System.out.println(m.getName());
}
for(Method m :methods) {
if(m.getName().equals("mm"));
try {
m.invoke(o,1);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}}class T{
public void m() {
System.out.println("m");
}
public void mm(int i) {
System.out.println(i+"mm");
}
public String say() {
return "say";
}
}
import java.lang.reflect.Method;
public class TestReflection { public static void main(String[] args) {
String s = "T";
Class c = null;
Object o = null;
Method[] methods = null;
try {
c = Class.forName(s);
o = c.newInstance();
methods = c.getMethods();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
for(Method m :methods) {
System.out.println(m.getName());
}
for(Method m :methods) {
if(m.getName().equals("mm"));
try {
m.invoke(o,1);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}}class T{
public void m() {
System.out.println("m");
}
public void mm(int i) {
System.out.println(i+"mm");
}
public String say() {
return "say";
}
}
if (m.getName().equals("mm"))
;
try {
m.invoke(o, 1); } catch (IllegalArgumentException e) { e.printStackTrace();
} catch (IllegalAccessException e) { e.printStackTrace();
} catch (InvocationTargetException e) { e.printStackTrace();
}
}
for (Method m : methods) {
if (m.getName().equals("mm")) {
try {
m.invoke(o, 1);
} catch (IllegalArgumentException e) { e.printStackTrace();
} catch (IllegalAccessException e) { e.printStackTrace();
} catch (InvocationTargetException e) { e.printStackTrace();
}
}
}
public class Student {
private String name;
private int score; public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public void disPlay() {
System.out.println("name:" + name);
System.out.println("score:" + score);
}
}public static void main(String[] args) {
String className = "com.test.Student";
try {
Class c = Class.forName(className);
Object object = c.newInstance(); Class[] param1 = {String.class};
Method setName = c.getMethod("setName", param1);
Object[] paramObj = {"Jim"};
setName.invoke(object, paramObj); Class[] param2 = {int.class};
Method setScore = c.getMethod("setScore", param2);
Object[] paramObj3={80};
setScore.invoke(object, paramObj3); Method disPlay = c.getMethod("disPlay", new Class[0]);
disPlay.invoke(object, new Object[0]); } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}