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

在Java和C中的运行时调用名为“ string”的方法

元叶秋
2023-03-14
问题内容

我们如何在运行时调用名称为 字符串 的方法。谁能告诉我如何用Java和C做到这一点。


问题答案:

在Java中,可以通过反射API完成。

看一看Class.getMethod(String methodName, Class... parameterTypes)

一个完整的示例(带有参数的非静态方法)将是:

import java.lang.reflect.*;
public class Test {

    public String methodName(int i) {
        return "Hello World: " + i;
    }

    public static void main(String... args) throws Exception {
        Test t = new Test();
        Method m = Test.class.getMethod("methodName", int.class);
        String returnVal = (String) m.invoke(t, 5);
        System.out.println(returnVal);
    }
}

哪个输出:

Hello World: 5



 类似资料:
  • 问题内容: 字符串池是否驻留在堆上?如果是,字符串文字是否可以进行垃圾回收? 使用时,我们知道它会在堆上创建一个对象,并将String文字放置在String池中。所以我的第二个问题是: 是否表现方法一样?如果是,StringBuilder如何处理字符串池中的字符串文字? 问题答案: 您会混淆编译时间,加载时间和运行时。 在类加载时,将字符串文字添加到常量池中。只需在类代码中的任何地方 提及 文字即

  • 我有一个扩展Person类的学生类。我的超级类中没有equals方法,只有我的子类中的两个,如图所示。我正在尝试理解我的第二、第三和第四个print语句的运行时行为。语句1调用了接受学生参数的equals方法,这是有意义的,因为要比较的两个对象都是声明类型的学生。但是,语句2调用了接受人参数的equals方法,而最后两个语句调用了Object类中的equals方法。有人能解释一下为什么Java是动

  • 所以我想问的是,在这种情况下使用异步是否真的有一些好处。

  • 问题内容: 从名称(以String格式)中调用方法有时会很有用。 在Swift中,建议更改行为并使用闭包“动态”地进行操作,例如,您可以拥有一个函数字典,名称为键,实现为值。 但是,有时您只想简单地知道“怎么做”,这就是这个问题的原因。 那么,如何从名称作为字符串开始动态调用Swift方法? 在目标C中很简单: 但是在Swift中被禁止 还有其他选择吗? 问题答案: 在Swift中,您应该使用闭包

  • 问题内容: 我试图从C ++获得一个简单的Java方法调用,而Java调用本机方法。这是Java代码: 我试图在从Java到本机的方法调用过程中从本机代码调用方法。 干净的编译应用停止并显示下一条消息后: 显然,这意味着方法名称错误,但对我来说似乎不错。 问题答案: 如果是对象方法,则需要将该对象传递给: 你正在做什么相当于。 由于你的方法无效,因此应调用: 如果要返回结果,则需要更改JNI签名(

  • 我有一个类,它被设计为继承。它当前有一个纯虚拟方法,如下所示: 名称实际上是类属性,而不是实例属性。它不应该在子类的实例之间更改,所以实际上,虚拟并不是最好的选择。无论如何,我现在遇到了一个问题,在编译时需要在模板函数中使用名称。显然,不起作用,而且由于子类不是默认可构造的,我甚至不能用来解决它。 所以有些事情需要改变,但是我不知道最好的方法。我需要能够在以下情况下访问名称: 在编译时,当我有一个