Javadoc识别超类构造函数

时间:2014-06-05 12:05:17

标签: java inheritance subclass superclass

如果我转到RandomGenerator class的Javadoc页面,我会看到类构造函数和方法的摘要。它说public class RandomGenerator extends Random

如何找到有关RandomGenator class如何调用Random类构造函数的更多信息?我没有在RandomGenerator class中看到它的超类构造函数的任何引用。

3 个答案:

答案 0 :(得分:1)

您很可能需要联系作者。出于某种原因,他们决定不将这些信息包含在javadoc(公共合同)中。

如果您没有来源,您也可以查看类源或使用java反编译器。

如果类构造函数没有直接调用super(),则意味着超类具有无参数构造函数,该调用是类构造函数的第一行始终,并且您不需要明确地称之为。

P上。 S.我的回答有两种不同的方法。我为此道歉,我不太确定你是否有分析来源。

答案 1 :(得分:1)

简短的回答是,你不能直接从javadocs。

您可以查看父类,发现它有2个构造函数,根据子类构造函数公开的参数猜测正在调用哪个构造函数。

当然,最有说服力的答案可以通过查看源代码(如果可用)或反编译(如果不是)来给出。

答案 2 :(得分:1)

来自documentation

  

注意:如果构造函数没有显式调用超类构造函数,Java编译器会自动插入对超类的无参数构造函数的调用。如果超类没有无参数构造函数,则会出现编译时错误。对象确实有这样的构造函数,因此如果Object是唯一的超类,则没有问题。

因此,他们决定不实际将调用写入super构造函数并使用默认值。