1

我正在研究有关 Java 继承的代码(来自 Hoffman 的 Core 2 java bk),这是 MethodPointerTest.java 类中的代码:

Method square = MethodPointerTest.class.getMethod("square", double.class);

稍后在课堂上有这样的功能:

public static double square(double x){ 
return x * x;
}

为什么 getMethod 函数的 seocnd 参数是:

double.class

VS 只是说“双倍”

谢谢你

4

2 回答 2

4

getMethod()方法将类作为参数来表示方法参数的类型

该关键字double仅用于声明或强制转换变量/参数。

通过反射,您处理的是元代码,而不是代码。

于 2013-06-15T21:32:04.480 回答
2

您需要添加 Double.class 的原因是您可以在 java 中重载方法。这意味着您可以拥有许多具有相同名称但参数不同的方法。因此,java 允许您在使用反射检索方法时指定方法的名称和参数的类型。

您需要 Double.class 而不仅仅是 double 的原因是 double 不是类型,它是 double。Double.class 是一种类型。

于 2013-06-15T21:39:35.060 回答