如何记录 Java 副作用

How to Document Java Side Effects

是否有为 Java/JVM 包含副作用的语言方法编写 javadoc 的标准或最佳实践?

我定义了一个 void 方法,它修改了一个方法参数,但不知道如何记录实际的 return 值(因为没有实际的 return)。

/**
  * @param obj - reference object
  * @return obj - obj.name is changed to 'hello' //TODO figure out javadoc annotation
 */
void methodName(Object obj) {
   if (obj != null) {
       obj.name = "hello";
   }
}

似乎没有好的方法来标记对象的副作用,因为@param 和@return 注释并没有真正说明发生了什么。

没有标准的 Javadoc 注释来描述副作用。副作用通常在该方法的人类可读描述中提及。在你的例子中,作为参数传递的对象被修改了,所以你可以考虑在 @param 标签之后简单地重复副作用。

无论如何,@return 标记不是记录副作用的正确位置:您的方法具有 void 作为 return 类型,因此它不会 return 任何事物。

在您的情况下,您的 Javadoc 可能如下所示:

/**
 * Methods a name. This method sets the "name" attribute of obj to "hello".
 * @param obj reference object ("name" attribute is modified by this method)
 */
void methodName(Object obj) {
   if (obj != null) {
       obj.name = "hello";
   }
}