java - 嵌套方法调用

标签 java android

我需要通过反射在 java 中调用类似下面的函数:

MyPrivateClass.getDefault("test").hitCurrentSetting(true);

我以为我可以像这样实现它,但它不起作用并抛出我不抛出异常:

    Class<?> c = Class.forName("com.xyz.MyPrivateClass"), instance = null;

    instance = (Class<?>) c.getMethod("getDefault", String.class).invoke(null, "test");

    Method method = instance.getMethod("hitCurrentSetting", boolean.class);
    method.invoke(null, true);

关于如何实现这个的任何想法?

最佳答案

试试这个:

Class<?> firstClass = Class.forName("com.xyz.MyPrivateClass");
Object firstCallResult = firstClass.getMethod("getDefault", String.class).invoke(null, "test");

Class<?> secondClass = firstCallResult.getClass();
Object secondCallResult = secondClass.getMethod("hitCurrentSetting", boolean.class).invoke(firstCallResult, true);

关于java - 嵌套方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50776403/

相关文章:

android - URI 和位图图像之间的区别

android - SQLite 查询 : Select Query with BETWEEN clause

android - 谷歌日历 API 在 android 中创建像目标这样的事件

android - 波处理和 Raspberry Pi

java - 树莓派无法与ACR122U通信

java - 使用多个 jar 运行执行

java - JFrame 非常小,使用空布局

java - 如何解决 "Reached the maximum number of URI tags for http.client.requests"警告?

Java selenium 使用 xpath 查找元素

java - 找不到 DDMS 文件/opt/android-sdk-linux/platform-tools/hprof-conv ubuntu