没有这样的方法异常-使用反射



我试图使用反射(在android应用程序上)调用一个方法,它只工作,当我这样做

Object impresora     = loadedClass.newInstance();
Object args[]        = {"00:15:0E:E0:DD:38", true};
for(Method m : impresora.getClass().getDeclaredMethods())
    if("BTConnection".compareTo(m.getName()) == 0)
         int resultado = (Integer) m.invoke(impresora, args);

但我不想每次都迭代,所以我尝试这种方式,但这是我得到NoSuchMethodException的地方

Method m = impresora.getClass().getDeclaredMethod("BTConnection");
m.invoke(impresora, args);

Thanks in advance

在你的第一个代码片段中你做的是object.getClass()在你的第二个代码片段中你做的是impresora.getClass()

你需要实际的参数类型,以便找到方法,否则它会尝试寻找没有参数的方法,我猜在你的类中不存在。

看到:

Object args[] = {"00:15:0E:E0:DD:38", true};

我猜第一个参数是字符串,第二个参数是布尔值,所以为了找到方法,你需要做以下操作:


Method m = c.getDeclaredMethod("BTConnection", String.class, Boolean.class);    

相关内容

  • 没有找到相关文章

最新更新