来自 java.lang.Class::getDeclaredMethods 的文档:
返回一个包含 Method 对象的数组,该对象反映了此 Class 对象表示的类或接口的所有已声明方法,包括公共方法、受保护方法、默认(包)访问方法和私有方法,但不包括继承的方法。声明的方法可能包括类或接口源中没有的方法,包括桥接方法和编译器添加的其他合成方法。 如果此 Class 对象表示一个类或接口,该类或接口具有多个具有相同名称和参数类型但返回类型不同的声明方法,则返回的数组对于每个此类方法都有一个 Method 对象...
AFAIK java 不允许类或接口的方法仅因返回类型而不同(返回类型不是函数签名的一部分),那么这是如何发生的呢?