Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串的Javadoc常量字段值_Java_Javadoc - Fatal编程技术网

字符串的Javadoc常量字段值

字符串的Javadoc常量字段值,java,javadoc,Java,Javadoc,我不喜欢Javadoc“Contant字段值”页面列出字符串常量的方式 例如: public static final String REGEXP_PATTERN = "^\\s*$"; 在Javadoc页面上,这个常量将以值^\\s*$列出,我认为这是完全错误的,它应该是^\s*$ javac要求转义\,这一事实与此无关。如果你问我,这个字段的值是^\s*$,这是Javadoc应该列出的 有什么办法可以做到这一点吗 目前的问题是——信不信由你——我们的Javadoc文档也被非Java人员使用

我不喜欢Javadoc“Contant字段值”页面列出字符串常量的方式

例如:

public static final String REGEXP_PATTERN = "^\\s*$";
在Javadoc页面上,这个常量将以值
^\\s*$
列出,我认为这是完全错误的,它应该是
^\s*$

javac要求转义
\
,这一事实与此无关。如果你问我,这个字段的值是
^\s*$
,这是Javadoc应该列出的

有什么办法可以做到这一点吗

目前的问题是——信不信由你——我们的Javadoc文档也被非Java人员使用。对于非Java的人来说,这是毫无意义的

public static final String REGEXP_PATTERN = "^\\s*$";
“\”只是“\”的转义字符-没有它,代码将无法编译

有什么办法可以做到这一点吗

您需要通过对默认doclet进行子类化来创建自己的doclet,通过简单查看,您只需要提供自己的
ConstantSummaryWriterImpl
子类,该子类的方法被重写为使用
member.constantValue()
代替
member.constantValue Expression()


要将此编写器连接到适当的位置,还需要子类
HtmlDoclet
并重写
configuration()
以返回自己的
ConfigurationImpl
子类,该子类又返回自己的
WriterFactoryImpl
子类,后者又返回自定义常量编写器,最后使用
-doclet
选项
javadoc
告诉它使用您的自定义doclet而不是标准doclet。

为什么非java人应该阅读javadoc?它的存在是为了帮助java程序员。。。说到java,
“^\s*$”
是错误的,因为如果将其复制/粘贴到代码中,它将不会编译“*字段的值(如果你问我的话)是“^\s*$”*”。但是如果你问java,它是“^ **$”。考虑其他可以用字符串文字表示的转义(例如,tab,返回)控制字符等。如果你改变这种工作方式,你可能会发现这种意义已经失去。它也将违背任何Java开发人员对它的期望。伙计们:反驳:如果a有一个int常量,它恰好在源代码中表示为“4*100”,那么您真的会说常量字段值应该显示为“4*100”还是说Javadoc应该显示为“400”?(正确地说,是后者)。一句话:常量在源代码中的表达方式(由于该语言源代码格式的特殊性)与实际值无关。Javadoc为这个字符串示例显示的不是值,就像我的int示例中的4*100不是值一样。无论如何,文档都不是要复制和粘贴的。那不是借口。它们是恒定场;你可以直接使用这个字段。“case'NUMBER'然后'BIGDECIMAL'”变为“case'NUMBER\'然后'BIGDECIMAL\'”,因为javadoc的这一部分被破坏了。显然,它首先解析字符串,然后在后面添加假转义。OP生气是对的。谢谢。这就是路。我希望有一个简单的切换,但作为替代方案,也许我们需要重新考虑使用特定Javadoc页面的整个想法,而不是严格的Java用户。不知道但是,谢谢。@nolan6000如果这只是一个或两个特定的类,那么编写一个小型Java程序,使用反射API遍历这些类,提取相关细节,并构建一个
.csv
(或其他任何内容),您的非Java人员可以在Excel中打开。是的,同意。正如您可能已经猜到的,我们使用特定的Javadoc页面向软件用户解释一些默认配置值。感谢您的回答。但问题不在于Java字符串文字中的“\”是什么意思。“case‘NUMBER’然后‘BIGDECIMAL’”变成了“case‘NUMBER’然后‘BIGDECIMAL’”——不仅文档不需要转义,而且它还被错误地添加到不属于它的地方。