文档中的一个示例:
JsonArray value = Json.createArrayBuilder()
.add(Json.createObjectBuilder()
.add("type", "home")
.add("number", "212 555-1234"))
.add(Json.createObjectBuilder()
.add("type", "fax")
.add("number", "646 555-4567"))
.build();但是JsonArray是一个接口,而不是一个类,变量的类型不能是一个接口。那么class JsonArray在哪里?我想包javax.json包含它,但是为什么没有文档化呢?
不过,我已经阅读了接口的详细信息,它显示了所有需要的方法/构造函数/返回类型,现在我知道了如何使用这些“类”。
发布于 2016-09-26 16:58:34
Java是一种规范;它没有实现。它依靠第三方来实现规范。javax.json包是(或最终将成为) java的一部分。因此,包含此jar只会为您提供到json的接口。您将被要求在运行时提供一个实现以使其工作。通常,您的代码对实现应该是不可知论的,即使事实上,这说起来容易做起来难。
发布于 2016-09-26 16:55:53
发布于 2016-09-26 16:56:45
为什么javax.json只包含接口?
因为实现者有意要隐藏实现的细节,并允许您仅通过工厂方法(而不是通过new实例化)创建实例。
那么JsonArray类在哪里?但为什么没有记录呢?
隐藏在私有包中的某个地方,可能从com.sun开始。即使您找到了它,直接使用它也是非常不明智的,因为它们可能会在下一个jdk安全更新中更改实现,从而破坏依赖于无文档化特性的任何代码。
https://stackoverflow.com/questions/39708155
复制相似问题