我正在研究关于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
只是说“双重”
谢谢
答案 0 :(得分:4)
getMethod()
方法将Classes作为参数来表示方法参数的类型。
关键字double
仅用于声明或转换变量/参数。
通过反思,您可以处理元代码,而不是代码。
答案 1 :(得分:2)
您需要添加Double.class的原因是因为您可以在java中重载方法。这意味着您可以拥有许多具有相同名称但参数不同的方法。因此,java允许您在使用反射检索方法时指定方法的名称及其参数的类型。
你需要Double.class而不是double的原因是double不是一个类型,它是一个double。 Double.class是一种类型。