【问题标题】:A Java Specification and its API (interfaces + classes)Java 规范及其 API(接口 + 类)
【发布时间】:2016-09-03 09:51:37
【问题描述】:

以 Servlet 规范为例(版本无关紧要)。它带有一个描述规范的大型 PDF 文件。它的 API(接口和类)属于 javax.servlet.* 包结构,我们作为程序员使用这些。例如在编写 Servlet 时,我们经常extends javax.servlet.http.HttpServlet。

我的问题:API 类和接口 (javax.servlet.*) 是“特定于供应商的”(由 servlet 容器的每个供应商实现)还是规范本身的这些部分(因此仅由每个 servlet 容器使用供应商)?

或者,规范实际上总是带有参考实现 (RI),它由规范成员创建并且可以免费使用(并且在某些地方——比如抽象类中的方法实现——可以免费修改)?

【问题讨论】:

  • 由于javax.servlet.* 的规范在单个文档中,因此不可能将其指定为特定于供应商的。这肯定很明显吗?
  • 我编辑了我的问题,添加了 RI 部分。

标签: java servlets


【解决方案1】:

这些包是规范的一部分,因此不是特定于供应商的。这样做的好处是您可以编写与实现无关的代码,即它可以在任何实现规范的容器中运行。如果一个实现有问题,您可以转移到一个新的,而无需对源代码进行任何更改。

看看this question。

【讨论】:

  • 谢谢。你提到的问题与我的有关。我有同样的问题,那就是:规范是否提到了我们作为程序员可以使用的包名和接口,我的意思是:“真正的 API 是 JavaDoc” 当然规范并不能确定实现,而是可以在编码员需要具体和完整的接口和类名称。
  • @StephanvanHoof 我认为 Jörg W Mittag 提供了一个非常详尽的答案。规范就是你想要的。您可以选择它是非常开放还是非常精确。在 Java 领域,规范通常包括包/接口/类名称。
猜你喜欢
  • 1970-01-01
  • 2014-07-29
  • 1970-01-01
  • 2014-02-24
  • 1970-01-01
  • 2017-03-27
  • 1970-01-01
  • 1970-01-01
  • 2019-12-21
相关资源
最近更新 更多