次のコードの断片があります。
class BaseClass {
public Integer getX() {
return 5;
}
}
class InheritedClass extends BaseClass implements Interface {
}
interface Interface {
public Number getX();
}
public class Test5 {
public static void main(String[] args) throws Exception {
System.out.println(InheritedClass.class.getMethod("getX").getReturnType());
}
}
java.lang.Number
BaseClass のgetX
メソッドが を返すため、このコードはを返します。これは私には非常に奇妙ですjava.lang.Integer
。そして最も興味深いのは、BaseClass
Interface を実装する場合、返される型は java.lang.Integer であるということです... これは正常な動作ですか?