相关疑难解决方法(0)

使用Maven时如何解决更严格的Java 8 Javadoc问题

你很快就会发现JDK8在Javadoc方面要严格得多(默认情况下).(链接 - 见最后一点)

如果你从来没有生成任何Javadoc那么你当然不会遇到任何问题,但Maven发布过程之类的事情以及可能你的CI版本会突然失败,因为它们与JDK7一起工作得很好.任何检查Javadoc工具退出值的东西现在都会失败.warnings与JDK7相比,JDK8 Javadoc可能也更冗长,但这不是这里的范围.我们在谈论errors!

存在这个问题是为了收集有关如何处理的提案.什么是最好的方法?是否应该在源代码文件中一劳永逸地修复这些错误?如果你有一个巨大的代码库,这可能是很多工作.还有哪些其他选择?

您也可以评论以前通过的失败的故事.

现在失败的恐怖故事

wsimport工具

wsimport工具是用于创建Web服务使用者的代码生成器.它包含在JDK中.即使您使用wsimportJDK8中的工具,它仍然会生成无法使用JDK8中的javadoc编译器编译的源代码.

@author标签

我打开3-4岁的源代码文件,看到这个:

/**
 * My very best class
 * @author John <john.doe@mine.com> 
 */
Run Code Online (Sandbox Code Playgroud)

现在由于<字符而失败.严格来说,这是合理的,但不是很宽容.

HTML表格

Javadoc中的HTML表格?考虑这个有效的HTML:

/**
 *
 * <table>
 *   <tr>
 *      <td>Col1</td><td>Col2</td><td>Col3</td>
 *   </tr>
 * </table>
 */
Run Code Online (Sandbox Code Playgroud)

这现在失败并显示错误消息no summary or caption for table.一个快速解决方法是这样做:

/**
 *
 * <table summary="">
 *   <tr>
 *      <td>Col1</td><td>Col2</td><td>Col3</td>
 *   </tr>
 * </table>
 */
Run Code Online (Sandbox Code Playgroud)

但为什么这必须是一个来自Javadoc工具的停止世界错误击败我?

现在因为更明显的原因而失败的事情

  1. 链接无效,例如 {@link notexist}
  2. 格式错误的HTML,例如 always returns <code>true<code> …

java maven java-8

130
推荐指数
4
解决办法
4万
查看次数

使用String.split()提取单词对

鉴于:

String input = "one two three four five six seven";
Run Code Online (Sandbox Code Playgroud)

是否有一个正则表达式,一次String.split()抓取(最多)两个单词,这样:

String[] pairs = input.split("some regex");
System.out.println(Arrays.toString(pairs));
Run Code Online (Sandbox Code Playgroud)

结果如下:

[one two, three four, five six, seven]
Run Code Online (Sandbox Code Playgroud)

这个问题是关于分裂正则表达式.它不是 "找到一种解决方法"或其他"使其以另一种方式工作"的解决方案.

java regex string split

55
推荐指数
2
解决办法
7328
查看次数

如何在javadoc内联标记中转义花括号,例如{@code}标记

/**
 * Gets the meatball icon for a nincompoop.
 * 
 * <p>
 * Example: {@code <custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" />}
 * 
 * @author King Cong
 * 
 */
Run Code Online (Sandbox Code Playgroud)

"$ {person}"部分会破坏文档注释,因为它使用花括号.

java javadoc escaping curly-braces

38
推荐指数
3
解决办法
1万
查看次数

尝试使用Netbeans 8.0在javadoc注释中的{@code}块中转义"@"符号

我正在尝试使用Netbeans 8.0在Javadoc注释中插入{@code}注释,但它无法正常工作.

我之前已经看过其他问题了(也就是说,你怎么能逃脱javadoc中的@字符?)但是html转义&#64;并且{@literal @}两者似乎都不起作用.

我的评论看起来像这样(为了示例,使用两种方法):

/**
 * blah blah blah
 * <p>
 * For example:
 * <pre>
 * {@code
 * {@literal @}begin_specification
 *  ...
 * &#64;end_specification
 * }
 * </pre>
 */
Run Code Online (Sandbox Code Playgroud)

我可以点击Run -> Generate Javadoc,一切运行正常,没有错误,但是当我在浏览器中查看结果输出时,我看到了这一点:

{@literal @}begin_specification
 ...
&#64;end_specification
Run Code Online (Sandbox Code Playgroud)

哪个不是理想的结果......有什么建议/想法吗?

我是Java的新手,但在过去使用过像C/C++这样的东西.我在这里做错了吗?我正在使用带有Java 1.8.0_05 x64的NetBeans 8.0(Build 201403101706).

java netbeans javadoc escaping java-8

8
推荐指数
2
解决办法
2580
查看次数

如何在javadoc中写"@"?

@我的代码示例中有一个在javadoc中:

 * <pre>
 * public class ArticleService<Article, ArticleDao> {
 *     @Autowired
 *     private ArticleDao articleDao;
 *     protected ArticleDao getDao() { return articleDao; }
 * }
 * </pre>
Run Code Online (Sandbox Code Playgroud)

它打破了javadoc,因为预览看起来像:

在此输入图像描述

怎么解决?

javadoc

3
推荐指数
1
解决办法
258
查看次数

如何添加选项以在 Javadoc 注释中显示 @tags

我有两个自己的注释,用于不同的字段和方法以及@Deprecated注释。但是,与@Deprecated注释不同,注释可以在带有描述的 Javadoc 注释中显示,我是否不可能用自己的注释来做到这一点。

小例子:

/**
 * Sends "bar".
 *
 * @deprecated Use {@link #sendFooBar()} instead.
 */
@Deprecated
@MyAnnotation // I want to add a description to this annotation in the comment above
public void sendBar(){
    System.out.prntln("bar");
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我必须做什么,以便在评论本身中显示注释并提供评论。

我不能只是将它添加到评论中,因为它会被视为“错误的标签”。

澄清一下:我不想在评论中显示 @ 符号。我知道该怎么做。
我想在 Javadoc 注释中包含类似于可用于@Deprecated注释的文档(描述)。

自理有注释@Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD, ElementType.FIELD})重视他们的注释。

java javadoc

3
推荐指数
1
解决办法
60
查看次数

标签 统计

java ×5

javadoc ×4

escaping ×2

java-8 ×2

curly-braces ×1

maven ×1

netbeans ×1

regex ×1

split ×1

string ×1