我需要通过反射在 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/