gpt4 book ai didi

java - 在java中使用反射调用Singleton类中的方法

转载 作者:行者123 更新时间:2023-11-29 09:30:35 29 4
gpt4 key购买 nike

我有以下类(class):

Public class ABCinfo { 
private static ABCinfo instance = null;
Public static ABCinfo getInstance(Param param); // get instance
Private ABCinfo(Param); // making a Singleton class
Public void methodA(Param1 param1); // need to invoke this method
}

在 java 中使用反射,我如何调用 methodA()。基本上我正在编写一个 Android 应用程序,我想在手机中已经存在的(假设它会一直存在)应用程序中使用方法。

以下是我尝试过的事情:

String apkName = activity.getPackageManager().getApplicationInfo(packageName, 0).sourceDir;

PathClassLoader myPathClassLoader =
new dalvik.system.PathClassLoader(
apkName,
ClassLoader.getSystemClassLoader());

Class<?> handler = Class.forName(className, true, myPathClassLoader);
Method m0 = handler.getDeclaredMethod("getInstance", new Class[] { Param.class });
m0.setAccessible(true);
Object b = m0.invoke(null, new Object[]{ Param});
Method m = handler.getMethod("methodA", new Class[] { Param1.class});
Param1 methodParameter = "asdf";
Object b1 = m.invoke(b, new Object[] { methodParameter });

但是还是不行。

最佳答案

我在下面找到了解决方案及其类似内容

Object b1 = m.invoke(handler.newInstance(), new Object[] { methodParameter });

关于java - 在java中使用反射调用Singleton类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16214723/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com