java - 使用反射调用具有用户定义的类数组参数的方法
问题描述
我正在尝试编写一个方法,通过将用户定义的类的数组作为参数传递给使用反射的方法来执行方法。
Class[] argTypesList = new Class[] {String[].class, String[].class, MyClass[].class};
Method methodToExecute = classToCall.getDeclaredMethod(“Method1”, argTypesList);
方法1是:
Method1(String[] a, String[] b, MyClass[] myclass)
这里第三个参数是用户定义的类数组。
Class myClass= Class.forName("somepackage.MyClass");
argTypesList = new Class[] {String[].class, String[].class, myClass[]};
这给出了以下错误
错误:预期为“.class”
,myClass[].class
它给出
找不到 myClass 的符号
解决方案
你可以通过在你的类名[L
前加上;
. 像这样:
Class myClasses = Class.forName("[Lsomepackage.MyClass;");
argTypesList = new Class[]{String[].class, String[].class, myClasses};
推荐阅读
- python-3.x - pytorch 中的手写优化器不起作用
- node.js - sweetalert2 成功和错误警报 :: 仅显示错误警报
- php - 从模型查询中制作数据数组
- react-native - 尝试使用 expo 构建我的本机应用程序时出现“Android 资源编译失败”错误
- c++ - 以编程方式向 Chromium PasswordStore 添加新的密码形式
- powershell - 比较我的文件夹和他们的备份文件夹,看看我的备份解决方案是否有效
- azure-machine-learning-service - 如何在部署为 AKS Web 服务的 Azure 机器学习模型中包含运行状况检查终结点?
- javascript - 专门检测“加载脚本失败”错误事件
- python - 如何抓取没有唯一 ID 的字符串进行数据提取?
- python - 如果在 python 上具有特定条件,如何降低嵌套的复杂性