gpt4 book ai didi

Java 反射 : wait() method repeat thrice. 为什么?

转载 作者:搜寻专家 更新时间:2023-11-01 01:10:07 26 4
gpt4 key购买 nike

我试图使用反射获取方法名称,我在下面写了两个类:

package com.test;

public class Test {
private void method1() {

}
}

.

package com.test;

import java.lang.reflect.Method;

public class Test2 {
public static void main(String[] args) throws SecurityException, ClassNotFoundException {
Method[] m = Class.forName("com.test.Test").getMethods();

for (Method method : m) {
System.out.println(method.getName());
}

}
}

我使用 getMethods() 而不是 getDeclaredMethods() 我得到了以下输出:

equals
hashCode
toString
getClass
notify
notifyAll
wait
wait
wait

我的问题是:为什么 wait 方法重复了三次?

最佳答案

Object 中定义了三个名为wait 的方法:

void wait()
void wait(long timeout)
void wait(long timeout, int nanos)

您的代码打印每个方法名称,但不打印参数类型列表,因此它们在输出中看起来都很相似。要查看参数类型,您可以使用类似这样的东西(可以改进以提供更好的格式:

for (Method method : m) {
System.out.println(method.getName());
for (Class<?> argClass : m.getParameterTypes()) {
System.out.println(" " + argClass.getName());
}
}

关于Java 反射 : wait() method repeat thrice. 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27100214/

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