- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 Effective Java(第三版)的第 56 条中,Joshua Bloch 指出:“公共(public)类不应使用默认构造函数,因为无法为它们提供文档注释。”
默认构造函数不会做任何意外的事情,不过,它只是创建一个新实例。什么样的信息应该记录在无参数构造函数的文档注释中,而不应该只存在于类注释中?
如果一个类在初始化 block 中有有趣的行为(否则没有地方可以注释这些),或者甚至是非标准的字段赋值(可能调用方法来获取初始值),我可以理解这样做。但对于大多数类(class)来说,这似乎并没有增加太多。有什么我想念的吗?
最佳答案
在大多数情况下你是对的。
而且我认为在这些情况下,使用默认构造函数是有意义的,因为您无需记录任何内容。
现在在其他一些情况下,记录方法的作用以及更具体的默认状态非常有用。
因为即使默认构造函数的主体为空,它也可能在其字段中使用默认值,这可能对记录很有趣。
这里有两个 JDK 类的例子,其中 javadoc 可能会为具有空主体的构造函数带来有用的信息。
堆栈
/**
* Creates an empty Stack.
*/
public Stack() {
}
当然,客户可能会在调用此构造函数时猜测 Stack 为空,但明确指定它会更好。
原子整数
采用AtomicInteger
空构造函数:
/**
* Creates a new AtomicInteger with initial value {@code 0}.
*/
public AtomicInteger() {
}
AtomicInteger
构造函数被重载。所以我们不在潜在的默认构造函数案例中。
但无论如何,它是一个空主体的空参数构造函数,类似于默认构造函数产生的结果。
如果没有这些构造函数 javadoc,这些类的客户端应该查看实现以猜测信息,并且限制客户端查看实现以理解其规范的 API 不是一个设计良好的 API。
关于java - 为什么使用 javadoc 无参数构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49371543/
我有多个程序员为 javadocs 贡献示例,一些示例包含格式化为 /* * */ 当我将这些示例放入 javadoc 注释时,示例中的注释 close 将关闭 javadoc 注释。 /**
我目前有一些 Source and Javadoc on GitHub .您可能知道,无法在 GitHub 上查看(呈现的)HTML 页面。但是solutions为这个问题而存在。就在一天前,这个解决
我希望能够使用@nnotations 来标记要从 javadoc 中排除的类或方法。 有没有办法为此目的对标准 doclet 进行子类化?第一次浏览 javadoc-doc 没有揭示解决方案。 最佳答
我正在生成 Javadocs。现在我想自动将所有库和 JDK 类链接到该库或 JDK 的官方文档。这可能吗?如果可以,我需要哪个命令行参数 最佳答案 解析对标准 Java 类的引用需要您拥有 Java
我正在生成 Javadoc。现在我想自动将所有库和 JDK 类链接到该库或 JDK 的官方文档。这可能吗,如果是的话,我需要哪个命令行参数 最佳答案 解析对标准 Java 类的引用需要您拥有 Java
我想在我的 javadoc 中使用自定义标签,但要遵守某种约定,以便其他人可以更轻松地理解它们。在 Oracle 的官方 javadoc 文档页面上,他们列出了基本标签,与我的编辑器的 javadoc
我在 javadoc 中的代码示例中有一个 @: * * public class ArticleService { * @Autowired * private Artic
如果您有几个不同项目的标准 Javadoc,您如何处理它们以创建一个统一的文档集,其中所有内容都是交叉链接的?理想情况下,结果将类似于 NetBeans 平台中各种模块的文档: http://bits
我正在尝试将现有的 Javadoc 修复到 project . 我在运行 mvn javadoc:fix .它成功执行但没有修复一些 Javadocs。 Maven Javadoc插件的配置: [DE
我正在尝试为多模块项目创建聚合 javadoc。该项目使用 mvn install -DskipTests 编译(我没有在我的机器上运行测试)。当我运行 mvn validate javadoc:ja
当我这样做时,我收到以下错误 mvn clean deploy -DperformRelease=true [ERROR] Exit code: 1 - .java:3: package javax.
我有一个带有 maven-javadoc-plugin 和 JDK8 的 Maven 项目。当我运行 mvn javadoc:test-javadoc 时,插件会报告文档错误并停止,但是当我运行 mv
我们使用 swagger 代码生成来创建客户端 API,代码库是用 java 8 编写的,我们现在升级到 java 11。我们使用 2.4.15 版本的 swagger-codegen-cli。代码生
过了一会儿,我回来写 JavaDoc。与此同时,我开始喜欢 SO 的标记,它在纯文本中比 HTML 更具可读性。 (即使是我以前从未使用过的反勾号)。 /** * I'm talking about
我有以下依赖项并在我的 pom 文件中构建。我可以使用 Maven 命令手动创建 javadoc。我也可以成功执行构建。输出根本没有提到 javadoc。我还尝试省略输出目录路径。 POM文件依赖部分
如何在 gitlab 中发布 javadoc?到目前为止,我已将 javadocs html 页面添加到 repo,但是当我尝试查看它们时,会显示原始文本 html 源,而不是重新编辑的 html 页
我在 Eclipse 中使用 Jsoup 时遇到了这个问题。我附上了以下 jar 文件:jsoup 1.7.2.jarjsoup 1.7.2.javadoc.jarjsoup 1.7.2.source
我正在尝试修复我的项目的javadoc(主要缺少@param和@return值),并且由于有相当多的代码需要修复,我正在尝试使用javadoc:fix目标: mvn javadoc:fix 不幸的是,
有什么东西可以用来解析 JavaDoc,以便我可以在运行时通过标准 Doclet 接口(interface)对其进行操作吗?本质上,一个 Doclet 的反向操作. 我知道不可能为每个 Javadoc
由于 TypeScript 不支持压缩或混淆,而这两者都是我们需要的功能,因此我们的工具链中仍然需要像 Google 的 Closure 编译器这样的工具。有没有办法让 TypeScript 自动输出
我是一名优秀的程序员,十分优秀!