为什么 inheritedDoc 没有在构造函数上定义?[已关闭]

2022-09-02 12:04:48

我想知道javadoc不支持transheatedDoc的任何有效理由。假设我有constructors

class A
{
/**
 * Constructor of A
 */
A(){}   

/**
 * Does something
 */
public void method(){}
}

class B extends A
{
/**
 * {@inheritDoc}
 */
B(){ super();}

/**
 * {@inheritDoc}
 */
public void method(){}
}

对于方法,我可以继承javadoc,但是为什么不能应用相同的方法?除非我使用 inheritDoc 标签,否则 javadoc 不会被继承,这意味着我很清楚我想要重用文档。什么应该阻止我这样做?methodconstructorsconstructors


答案 1

什么应该阻止我为构造函数这样做?

大概是构造函数不是继承的。虽然它们通常最终具有与超类中的构造函数相同的参数(具有相同的含义),但它并不像与方法那样具有清晰的关系。

我可以看到实用价值,但同样,我也可以理解为什么实际上没有继承的东西不应该可用。如果您可以专门继承文档,那就太好了 - 例如,如果您要将参数值直接传递给超类构造函数,那么能够有效地链接到该文档会很好...@inheritDoc


答案 2

我喜欢使用以下表示法来解决此问题:

public class TestReflectionHelper extends TestReflectionHelperCommon {

    /**
     * @see TestReflectionHelperCommon#TestReflectionHelperCommon()
     */
    public TestReflectionHelper() {
        super();
    }

    /**
     * @see TestReflectionHelperCommon#TestReflectionHelperCommon(Class, String,
     *      Class...)
     */
    public TestReflectionHelper(final Class<?> targetClass,
            final String targetMethod, final Class<?>... parameterTypes) {
        super(targetClass, targetMethod, parameterTypes);
    }

    ...
}

推荐