You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ClassLoader调用类方法并获取boolean类型返回值

从ClassLoader调用方法获取boolean返回值的实现方案

Method.invoke()方法的返回值就是目标方法的执行结果,类型为Object。如果目标方法返回基本数据类型,Java会自动将其装箱为对应的包装类,你要调用的方法返回boolean,执行结果会被自动装箱为Boolean类对象,直接强转后拆箱即可得到原生boolean值。

另外注意你要调用的isInitialized是static静态方法,不需要实例化类对象,调用invoke时第一个参数传null即可,可以省去构造实例的冗余代码。

修正后的完整代码

ClassLoader cl = new URLClassLoader(urlsArr);
Class<?> loadedMyClass = cl.loadClass(className);

// 获取目标方法
Method method = loadedMyClass.getMethod(methodName);
// 静态方法invoke第一个参数传null,接收返回结果
Object invokeResult = method.invoke(null);
// 强转为Boolean类型后拆箱得到原生boolean值
boolean result = (Boolean) invokeResult;

Log.d("Invoked", method.getName() + " 返回值:" + result);

return result;

补充注意事项

  • 如果你确实需要调用非静态方法,保持原有实例化逻辑即可,invoke第一个参数传入你创建的实例对象myClassObject就能正常拿到返回值
  • 需要处理相关检查异常:包括ClassNotFoundException、NoSuchMethodException、IllegalAccessException、InvocationTargetException,可以根据业务逻辑选择捕获处理或者向上抛出
  • 注意方法名字段的拼写正确性,你原有代码中的methodNAme大小写拼写有误,很容易触发NoSuchMethodException

内容的提问来源于stack exchange,提问作者Akshat Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 19:27:01