gpt4 book ai didi

java - "parameterTypes"方法中 "java.lang.Class.getMethod()"的解释和正确格式

转载 作者:行者123 更新时间:2023-12-01 17:41:13 26 4
gpt4 key购买 nike

我有以下代码-

MyInterface.java -

    default int getNumber() {
System.out.print("Number: ");
return in.nextInt();
}

default void displayNumber(int num) {
System.out.println("Number: " + num);
}

Main.java -

        int num;

MyInterface obj = new MyInterface() {
};

num = (int) obj.getClass().getMethod("getNumber").invoke(obj);
obj.getClass().getMethod("displayNumber", parameterType).invoke(obj);

为了清楚起见,我省略了异常(exception)

在这里,我使用两个方法创建了接口(interface) - MyInterface -

一个方法读取一个数字并返回它。

另一个方法将一个数字作为参数并打印它。

Main 方法中,我创建了一个内部类来实现接口(interface)

现在使用 reflectiongetMethod() 我能够成功调用第一个方法来读取数字。

但我不知道使用 getMethod() 传递参数的正确格式,因此我无法成功调用第二个方法.

这里,parameterType 应该用什么来代替?

最佳答案

虽然 ajc2000 的答案是正确的,但我想指出 .class 语法也可以工作:

Retrieving Class Objects

If the type is available but there is no instance then it is possible to obtain a Class by appending ".class" to the name of the type. This is also the easiest way to obtain the Class for a primitive type.

也就是说,以下内容也可以工作:

obj.getClass().getMethod("displayNumber", int.class).invoke(obj, 5);

关于java - "parameterTypes"方法中 "java.lang.Class.getMethod()"的解释和正确格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60910846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com