java - 方法上的属性导致 javadocs 中出现空格

标签 java spring-mvc java-8 javadoc

我正在使用 Java 8 并且我有一个 Spring Controller ,它具有创建新用户的方法:

/**
 * Creates a new user in the system
 * 
 * @param username The new user's username
 * @param email The new user's email
 * @param password The new user's password
 * @return the new user
 */
@RequestMapping(value = "/user/create", method = RequestMethod.POST)
@ResponseBody
public String createUser(
        @RequestParam(value = "username") String username,
        @RequestParam(value = "email") String email,
        @RequestParam(value = "password") String password) {
    return "";
}

当我为此生成 javadocs 时,我最终在参数前有大量空格。生成的 HTML 在 <pre> 中有很多空格列表中参数前的标记。

如果我删除 @RequestMapping@ResponseBody方法中的属性,然后 javadoc 会按预期出现。

我已将 javadoc 工具生成的结果放在以下代码片段中。第一个是它今天的渲染方式,第二个是它如何在移除属性后正确显示。

<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="createUser-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createUser</h4>
<pre>@RequestMapping(value="/user/create",
                method=POST)
 @ResponseBody
public&nbsp;java.lang.String&nbsp;createUser(@RequestParam(value="username")
                                                                                                                        java.lang.String&nbsp;username,
                                                                                                                        @RequestParam(value="email")
                                                                                                                        java.lang.String&nbsp;email,
                                                                                                                        @RequestParam(value="password")
                                                                                                                        java.lang.String&nbsp;password)</pre>
<div class="block">Creates a new user in the system</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>username</code> - The new user's username</dd>
<dd><code>email</code> - The new user's email</dd>
<dd><code>password</code> - The new user's password</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new user</dd>
</dl>
</li>
</ul>
<a name="createUserWithoutAttributes-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createUserWithoutAttributes</h4>
<pre>public&nbsp;java.lang.String&nbsp;createUserWithoutAttributes(@RequestParam(value="username")
                                                    java.lang.String&nbsp;username,
                                                    @RequestParam(value="email")
                                                    java.lang.String&nbsp;email,
                                                    @RequestParam(value="password")
                                                    java.lang.String&nbsp;password)</pre>
<div class="block">Creates a new user in the system</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>username</code> - The new user's username</dd>
<dd><code>email</code> - The new user's email</dd>
<dd><code>password</code> - The new user's password</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new user</dd>
</dl>
</li>
</ul>
</li>
</ul>


我不知道从哪里开始深入研究这个问题,所以我感谢任何输入。

javadoc -J-version 说:
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)

Javadoc 命令:
javadoc -d docs -Xdoclint:none -sourcepath ./MyProject/src -subpackages com -classpath ./spring-web-4.0.8.RELEASE.jar./spring-context-4.0.8.RELEASE.jar

最佳答案

我认为您的问题已在此 JDK 错误中得到解决:https://bugs.openjdk.java.net/browse/JDK-8062647
由于上述错误已在 Java 9 中解决,将您的项目升级到 Java 9 应该可以解决您的问题。

关于java - 方法上的属性导致 javadocs 中出现空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30062846/

相关文章:

java - 应用程序不将日志保存到特定的附加程序

java - 与基于 xml 的配置相比,注释在重新编译、重新部署方面不是有显着的优势吗?

mysql - 如何在hibernate中使用带有注释的字符串作为主键

java - 在jsp中访问request属性(Spring 3 mvc)

java - 从函数指针列表中获取函数的索引

java - 如何使用不在接口(interface)中的成员强制转换为多态类型

java - 带有 Spring 5 的响应式(Reactive) WebSockets - 如何获取初始消息

java - 需要 AnnotationConfiguration 实例

java - (Java 8) java.util.function.Supplier

java - 如何从 String 对象取回 Java 模型对象?