用 Java 声明的库的 API 在哪里?

在 C/C++ 中,库的 API 在头文件中声明。我可以查看头文件以了解库提供了哪些函数和类型。但是Java没有使用头文件的概念。它用什么代替?我在哪里可以看到 Java 库的接口声明?



墨色风雨
浏览 122回答 3
3回答

慕无忌1623718

一种方式是,按照惯例,Java 开发人员使用他们的 API 发布 Javadoc。有时在同一个 jar 文件中,但通常在从同一个地方下载的具有相似名称的单独文件中。如果您没有 Javadoc,则可以通过反射找到库的公共接口:想想 C++ RTTI 的强项,每个公共类名、每个公共方法名及其签名,包括其参数的名称,都是可见的并且可以在运行时和设计时以编程方式检索。IDE 是帮助您解决此问题的好工具;它使用反射来告诉您可用的类,并在您打开方法名称后的括号时立即向您显示方法的签名。

忽然笑

简单地说:你不能。没有适用于 Java 的通用规则如何准确地做到这一点。当然,您可以查看实际的interfacejava 类,也可以搜索公共类及其公共方法。但是没有一个“中心”的地方必须汇集这些信息。尽管如此,使用最近的 Java,您将定义清晰的模块,并编写良好的 Javadoc 注释来描述您的包以及如何使用它们。换句话说:有一些概念可以帮助Java开发人员描述“这是一个供外部使用的接口,这里是如何使用该接口的信息”。但是你如何做到这一点是你的选择。从这个角度来看,它与 C++ 非常相似。当头文件中的内容没有以合理的方式编写时,将头文件和 cpp 源文件分开对您没有帮助。最后:真正的答案可能是:您依赖于您的 IDE。当我想找到接口的用法或实现时,我会去问我的 IDE,它知道我的项目并且可以向我展示这些东西。

慕哥6287543

在 java 中,您可以使用publicjar 文件中定义的所有类。在类中,您可以调用所有公共方法。您可以使用其他两个可见性级别,受保护的可见性和默认可见性(没有任何可见性关键字),可以在一些限制下使用。这是一个完整的可见性表(从另一个答案复制):&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │ Class │ Package │ Subclass │ Subclass │ World&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │&nbsp; &nbsp; &nbsp; &nbsp;│&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│(same pkg)│(diff pkg)│&nbsp;────────────┼───────┼─────────┼──────────┼──────────┼────────public&nbsp; &nbsp; &nbsp; │&nbsp; &nbsp;+&nbsp; &nbsp;│&nbsp; &nbsp; +&nbsp; &nbsp; │&nbsp; &nbsp; +&nbsp; &nbsp; &nbsp;│&nbsp; &nbsp; &nbsp;+&nbsp; &nbsp; │&nbsp; &nbsp;+&nbsp; &nbsp; &nbsp;────────────┼───────┼─────────┼──────────┼──────────┼────────protected&nbsp; &nbsp;│&nbsp; &nbsp;+&nbsp; &nbsp;│&nbsp; &nbsp; +&nbsp; &nbsp; │&nbsp; &nbsp; +&nbsp; &nbsp; &nbsp;│&nbsp; &nbsp; &nbsp;+&nbsp; &nbsp; │&nbsp; &nbsp;-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;────────────┼───────┼─────────┼──────────┼──────────┼────────<default>&nbsp; &nbsp;│&nbsp; &nbsp;+&nbsp; &nbsp;│&nbsp; &nbsp; +&nbsp; &nbsp; │&nbsp; &nbsp; +&nbsp; &nbsp; &nbsp;│&nbsp; &nbsp; &nbsp;-&nbsp; &nbsp; │&nbsp; &nbsp;-&nbsp;────────────┼───────┼─────────┼──────────┼──────────┼────────private&nbsp; &nbsp; &nbsp;│&nbsp; &nbsp;+&nbsp; &nbsp;│&nbsp; &nbsp; -&nbsp; &nbsp; │&nbsp; &nbsp; -&nbsp; &nbsp; &nbsp;│&nbsp; &nbsp; &nbsp;-&nbsp; &nbsp; │&nbsp; &nbsp;-&nbsp;&nbsp;+ : accessible&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- : not accessible这是列的定义:类 - 同一个类(这不是您的情况,因为您使用的是由外部库定义的类)包 - 在您需要访问的类的同一包中定义的任何类子类(同一个包) - 任何作为您需要访问并在同一个包中定义的类的子类的类子类(不同的包)- 作为您需要访问并在不同包中定义的类的子类的任何类World - 任何其他类(不是同一个包,也不是子类)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java