我正在浏览Android恶意软件中的一段代码以了解它的工作原理.av类定义如下
public final class av implements android.widget.AdapterView.OnItemClickListener {
final ChooserActivity a;
public av(ChooserActivity chooseractivity) {
super();
a = chooseractivity;
}
...Other methods here
}
Run Code Online (Sandbox Code Playgroud)
super()调用直接的父类构造函数 - >我知道
父类是Object.所以构造函数将返回什么.意味着返回对象的属性是什么.
我正在学习java反思.我试过了
System.exit(3);
Class.forName("java.lang.System").getMethod("exit", Integer.TYPE).invoke(null, 3);
它的工作原理.我成功也跑了
System.out.println(Class.forName("java.lang.System").getMethod("currentTimeMillis").invoke(null));
现在我如何反思地调用System.out.println
java.lang.Class.forName("java.lang.System").getMethod("out.println", String.class).invoke(null, "Hi!");
给出错误.我知道系统没有功能.因此,建议一种反射性地调用System.out.println的方法
这是完整的例子
public class ReflectionDemo1 {
public static void main(String[] args) throws Exception {
// java.lang.System.exit(3);
// java.lang.Class.forName("java.lang.System").getMethod("exit", Integer.TYPE).invoke(null, 3);
// java.lang.System.currentTimeMillis()
// System.out.println(Class.forName("java.lang.System").getMethod("currentTimeMillis").invoke(null));
// System.out.println("Hi!");
java.lang.Class.forName("java.lang.System").getMethod("out.println", String.class).invoke(null, "Hi!");
}
}
Run Code Online (Sandbox Code Playgroud)