当前位置: 首页 > 面试题库 >

Android / Java:使用反射调用方法吗?

池恩
2023-03-14
问题内容

我有一个名为choiceDialog(String s,int
i)的静态方法,在该方法中,我想根据提供给choiceDialog的参数在同一类(Dialogs.class)中调用另一个方法。s是所需方法的名称,而i是单个参数。

我已经尝试了许多教程,并花了几个小时阅读有关该主题的内容,但是我似乎无法确切地知道我需要做什么。

有任何想法吗?

谢谢!


问题答案:

为什么要使用在String参数中传递的名称来调用方法?您不能为不同的动作创建一个常量,然后使用switch并在每种情况下调用带有参数的方法i吗?

您将受益于编译器检查代码中的错误。

编辑 :如果您确实要使用反射,请使用以下方法检索Method对象:

Method m = YourClass.class.getMethod("method_name",new Class[] { Integer.class })

我猜可能是Integer.class。然后将方法调用为

m.invoke(null,123); //first argument is the object to invoke on, ignored if static method


 类似资料:
  • 问题内容: 我需要使用反射调用类的setter方法,并且代码如下: 的是一个以及设置器方法如下: 运行此代码时,将引发A ,但是将setter方法参数类型更改为from时,将执行正常。有没有一种方法可以将setter方法的参数保持为超级类型,并且在从类中获取方法时仍无需手动指定参数的类型即可使用反射? 问题答案: 与其他答案相反,有一个非常简单的解决方案。请参阅。它为您提供了一种执行任意反射代码的

  • 问题内容: 我想调用静态的方法。我得到了类型的对象,但是我无法创建该类的实例,也无法调用该方法。 问题答案: 如果方法是私有使用而不是。并调用方法对象。

  • 问题内容: 我需要使用反射从另一个主要方法调用Java类的主要方法。 必须使用反射,以消除被调用主类的编译时依赖性。直截了当的方法并没有产生效果,因为它只识别“公共”和“非静态”方法。有什么建议吗? 问题答案: 不应比调用任何其他函数更复杂: 但是我真的看不到有什么用途,只要您不使用特定的代码路径,就可以买到该程序,而无需链接另一个程序,这是它唯一能为您带来的好处,但是如果这是您需要的,在这里走

  • 问题内容: 我有两节课: 我有一个实例B。如何调用A.method()从b?基本上,效果与super.method()从调用相同B。 但是上述代码仍会调用。 问题答案: 如果使用的是JDK7,则可以使用MethodHandle实现此目的:

  • 问题内容: 如何使用反射调用带有参数的方法? 我想指定这些参数的值。 问题答案: 这是一个使用涉及原语的反射调用方法的简单示例。 要健壮,应该捕获和处理所有检查反射有关的异常,,。

  • 问题内容: 我在递归反射函数中调用方法时遇到麻烦。这里是: 我用以下函数调用该函数: 我希望获得的解析方法在我正在打印方法的地方,并针对它运行.Call()。相反,它是打印出来的:我不能反对。 我想我无法将每个方法的返回值都放在头上。我知道我必须使用ValueOf来提取值,但似乎我尝试了任何置换,都是从反射类本身获取方法的:-p 感叹 问题答案: 问题在于该方法在指针接收器上,但是该函数正在与赋值