Java Class类的getMethod函数如何工作?

时间:2013-06-15 21:28:45

标签: java inheritance reflection

我正在研究关于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

只是说“双重”

谢谢

2 个答案:

答案 0 :(得分:4)

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

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

通过反思,您可以处理元代码,而不是代码。

答案 1 :(得分:2)

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

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