我试图更熟悉使用JavaDocs。我正在查看String函数,我认为String非常有趣,它实际上只是一个私有引用变量中保存的字符数组。
当我查看String的源代码时,它显示了一个构造函数,如下所示:
String(int offset, int count, char value[]) {
this.value = value;
this.offset = offset;
this.count = count;
}
然后我继续查看String JavaDoc,它没有显示具有该类型签名的构造函数..什么给出了?
答案 0 :(得分:7)
正如Oli在上面的评论中提到的那样,构造函数不是公开的。至少在OpenJDK中,代码显示为注释:
// Package private constructor which shares value array for speed.
String(int offset, int count, char value[]) {
另外需要注意的是,如果你真的想要那个构造函数,那么有一个几乎相同,但顺序不同:
String(char[] value, int offset, int count)
答案 1 :(得分:3)
根据some random version of the Java documentation,String
没有公开的构造函数,它具有您发布的签名。因此,这似乎是一个实现内部(私有)构造函数,您不应该直接使用它,因此它没有记录。
标准库通常使用内部帮助函数,将许多类似和相关的公共接口函数压缩为少量的实际工作函数。
答案 2 :(得分:3)
源代码中的构造函数正上方有一条注释:
// Package private constructor which shares value array for speed.
String(int offset, int count, char value[]) {
this.value = value;
this.offset = offset;
this.count = count;
}
这解释了为什么这个非公共构造函数的文档没有包含在公共文档中。
答案 3 :(得分:3)
来自消息来源:
644 //打包私有构造函数,它为速度共享值数组。
非公开方法通常不是javadoc的一部分,因为它不是你可以依赖的东西(或者在这种情况下使用,因为你不是在java.lang中而且它是' s包私有)。
答案 4 :(得分:2)
// Package private constructor which shares value array for speed.
String(int offset, int count, char value[])
这样我们就无法从类的外侧创建对象,这样它就可以为String类提供安全性。这个构造函数是以单例形式实现的。