首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDK 1.7允许具有名称*开始*的自定义标记。JDK 1.8禁止它吗?

JDK 1.7允许具有名称*开始*的自定义标记。JDK 1.8禁止它吗?
EN

Stack Overflow用户
提问于 2015-02-25 18:00:06
回答 1查看 502关注 0票数 9

我写了一个以点开头的名字的custom taglet library.codelet.codelet.and.out等等。它是用JDK 7编译的。

当使用1.7javadoc.exe生成JavaDoc时,它工作得很好。但是当使用JDK 8生成它时,它失败了,因为

代码语言:javascript
复制
C:\...\Temp.java:5: error: no tag name after @
 * {@.codelet mypkg.Temp}`

如果我使用taglet (而不是taglet代码本身)将代码更改为{@codelet mypkg.Temp}

代码语言:javascript
复制
C:\...\Temp.java:5: error: unknown tag: codelet
 * {@codelet mypkg.Temp}
Note: Custom tags that were not seen:  @.codelet
1 error

将taglet源代码中的名称更改为cod.elet (code.let不好,因为code是一个已经存在的taglet名称),并且使用这个新名称,它可以工作。

用于JavaDoc的 option工具文档(靠近本节底部)声明:

避免冲突:如果您想创建自己的命名空间,那么您可以使用类似于包: com.mycompany.todo的点分隔命名约定。Oracle将继续创建名称不包含点的标准标记。您创建的任何标记都将用Oracle定义的相同名称覆盖标记的行为。如果您创建了@todo标记或taglet,那么它始终具有您定义的相同行为,即使Oracle稍后会创建同名的标准标记。

我是不是漏掉了什么?或者这是一个没有文件记录的改变,真的很糟糕?因为如果是这样的话,我的图书馆需要做很大的改变。

金融时报:Taglet overview docs

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-25 18:29:28

我是不是漏掉了什么?

好吧,你引用的文档部分说:

“.然后您可以使用类似于包:com.mycompany.todo的点分隔命名约定”

注意,它写的是“点分隔”的命名约定,而不是“有点的名字”。

请注意,它写着“类似于用于包的内容”。如果您尝试使用".mypackage“作为包名,编译器会说”没门!“

我的理解是,您的".codelet“标记名不符合文档中规定的标准。因此,所发生的事情是,Java8版本的javadoc已被更改,以严格执行标签命名规则。从您的角度来看,这是不幸的,但问题最终在于您的javadoc注释,而不是工具。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28726294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档