java里面的new Method xx=A.class.getMethod("getVal",new Class[]{}); new Class[]{}是什么意思?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 12:36:20

java里面的new Method xx=A.class.getMethod("getVal",new Class[]{}); new Class[]{}是什么意思?
java里面的new Method xx=A.class.getMethod("getVal",new Class[]{}); new Class[]{}是什么意思?

java里面的new Method xx=A.class.getMethod("getVal",new Class[]{}); new Class[]{}是什么意思?
getMethodpublic MethodgetMethod(String name,
Class...parameterTypes)
throws NoSuchMethodException,
SecurityException返回一个 Method 对象,它反映此 Class
对象所表示的类或接口的指定公共成员方法.name 参数是一个
String,用于指定所需方法的简称.parameterTypes 参数是按声明顺序标识该方法形参类型的
Class 对象的一个数组.如果 parameterTypes 为
null,则按空数组处理.
如果 name 是 ";" 或
"",则将引发
NoSuchMethodException.否则,要反映的方法由下面的算法确定(设 C 为此对象所表示的类):
在 C 中搜索任一匹配的方法.如果找不到匹配的方法,则将在 C 的超类上递归调用第 1 步算法.
如果在第 1 步中没有找到任何方法,则在 C 的超接口中搜索匹配的方法.如果找到了这样的方法,则反映该方法.
在 C
类中查找匹配的方法:如果 C 正好声明了一个具有指定名称的公共方法并且恰恰有相同的形参类型,则它就是反映的方法.如果在 C
中找到了多个这样的方法,并且其中有一个方法的返回类型比其他方法的返回类型都特殊,则反映该方法;否则将从中任选一个方法.
注意,类中可以有多个匹配方法,因为尽管 Java 语言禁止类声明带有相同签名但不同返回类型的多个方法,但 Java
虚拟机并不禁止.这增加了虚拟机的灵活性,可以用来实现各种语言特性.例如,可以使用桥方法 (brige method)实现协变返回;桥方法以及将被重写的方法将具有相同的签名,不同的返回类型.