【问题标题】:JAVADOC for private methods (BlueJ)私有方法的 JAVADOC (BlueJ)
【发布时间】:2012-01-31 13:30:39
【问题描述】:

我正在使用 BlueJ,我想为我的整个项目生成 Javadoc。 我想在 Javadoc 上显示私有方法,有什么办法吗? BlueJ 有一个制作 Javadoc 的工具,但 BlueJ 忽略了私有方法。 只是一个约定吗?如果这是一个约定,我不明白为什么,他们忽略了“内部”方法,它们也很有用-.-*

【问题讨论】:

    标签: java javadoc bluej


    【解决方案1】:

    This link 建议 BlueJ 只会为公共方法和类生成 JavaDocs。 具体来说:

    您的输出将仅包含有关公共方法和变量的信息

    但是,根据链接到Andrew Thompson's answerbug report,看来这已在 BlueJ 的 1.1.5 版中得到修复。事实上,根据BlueJ Reference Manual 的第 9.8 节,您可以确切地通过编辑doctool.options 属性来指定运行 JavaDoc 工具时要使用的选项。

    似乎有 3 个属性控制文档生成的行为:

    • doctool.command:控制使用什么命令生成文档,默认设置为javadoc
    • doctool.outputdir:控制生成的文档保存在哪里,默认设置为doc
    • doctool.options:控制传递给javadoc.command指定的命令的其他命令行选项,默认设置为-author –version –nodeprecated –package。请注意,通过将 -package 替换为 -private,您可以记录所有方法。

    一般来说,由于 JavaDoc 工具是一个命令行程序,您可以简单地从命令行自己调用它,如下所示:

    $ javadoc -d \path\to\output\folder -sourcepath \path\to\source\folder -private
    

    注意,此命令假定 javadoc 包含在您的 PATH 环境变量中,这在大多数 java 安装中通常是这种情况。

    • -d 选项提供所需的输出目录
    • -sourcepath 选项告诉 JavaDoc 工具在哪里可以找到要记录的源代码
    • -private 选项告诉 JavaDoc 工具为所有类、成员和方法创建文档(因为私有是最受限制的可见性)

    控制 JavaDoc 将记录的成员的完整选项列表是:

    • -public - 仅显示公共类和成员。
    • -protected - 仅显示受保护的和公共的类和成员。这是默认设置。
    • -package - 仅显示包、受保护和公共类和成员。
    • -private - 显示所有类和成员。

    (取自JavaDoc Documentation

    编辑 0: 更新答案以合并Andrew Thompson 揭示的新信息

    【讨论】:

    • 感谢您提供的信息,组织得很好;)您提供的关于 Javadoc 和 BlueJ 的链接非常有趣,非常有用!
    【解决方案2】:

    已接受答案中的链接来自 2001 年撰写的一篇文章。从那时起发生了很多变化。

    例如搜索 'bluej+javadocs' 的前 5 个左右的链接包括一个指向 allow inclusion of private methods in javadoc 的错误报告的链接。描述中提到:

    使 javadoc 参数用户可定义(在 bluej.defs 中),以便用户必须选择在文档中包含私有方法

    还提到:

    Resolution:     FIXED 
    

    注意:我不使用 BlueJ,但是当我听到令人难以置信的答案时,我不得不继续寻找主要 IDE 无法提供如此简单的配置的能力。

    【讨论】:

    • 我从来没有听说过 BlueJ,所以我真的没有三思而后行,+1 比我更彻底的狩猎 :)
    【解决方案3】:

    按照惯例,人们通常不会将私有方法放在 Javadoc 中,因为 Javadoc 旨在供使用您的代码的人使用。由于他们无法访问私有方法,因此为这些受众记录它们是没有意义的。

    然而,javadoc 工具有一个标志来启用它:

    javadoc -private
    

    将在您的 Javadoc 中生成私有方法。我不确定 BlueJ 是如何处理这个的,但也许你可以传入一个标志或其他东西。

    【讨论】:

    • 非常感谢,我不知道我可以像命令一样在控制台上使用 javadoc,我是新手 :(
    • 除非使用您的代码的人是另一个必须维护/扩展您最初编写的代码的开发人员;)
    • @chrisbunney 如果这些方法打算被子类扩展或使用,则它们不应该是私有的。在维护的情况下,他们有代码并且可以读取其 Javadoc 格式的 cmets,他们只是不会在 HTML 格式的 Javadoc 中。我们不是在谈论忽略 cmets,只是不将它们放入 Javadoc 通常创建的 API 文档中。但我确实明白你的意思!
    猜你喜欢
    • 2015-10-09
    • 2011-08-05
    • 2014-03-05
    • 2016-02-15
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    相关资源
    最近更新 更多