package test;
import java.lang.reflect.Method;
public class JustTest {
public static void main(String args[]) {
try {
// 将编译后的Just.class这个Class对象,指向c{Java中一切皆对象}
Class<?> c = Just.class;
// 获取Just这个类中的自定义的方法,包括private、protected、public、默认{c.getMethods()仅包括public方法}
Method[] m = c.getDeclaredMethods();
for (Method me : m) {
// 获取方法名为“A”的方法名
if (me.getName().equals("A")) {
// 实例化方法,在使用对象之前,先要先加载对应的类
Object obj = c.newInstance();
// 获取方法,参数为(方法名, Class数组), Class数组中存放着参数的类型
Method mm = c.getMethod(me.getName(), new Class[] { java.lang.String.class });
// 执行方法的调用,参数为(类的对象,参数数组)
mm.invoke(obj, new Object[] { "zxg" });
}
}
} catch (Exception e) {
// 可能会跑出ClassCastNotFoundation的异常
e.printStackTrace();
}
}
}
class Just {
public void A(String code) {
if (code.equals("zxg")) {
System.out.println("Great!");
}
}
}
如上所示的代码,有几点疑惑的求教:
Class和Object之间的关系怎么理解,看了很多解释,还是不明白。
2.步骤中,Object obj = c.newInstance();这个地方为什么要进行实例化。
求解答,谢谢~
慕尼黑的夜晚无繁华
青春有我
慕森王
慕丝7291255
MMMHUHU
红颜莎娜
相关分类