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

时间:2019-05-07 14:23:09

标签: java interface header-files

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

3 个答案:

答案 0 :(得分:1)

简单地说:您不能。

没有完全适用于Java how 的通用规则。当然,您可以检出实际的interface Java类,并且可以搜索公共类及其公共方法。但是,没有这样的信息必须聚集的“中心”位置。

尽管如此,在最近的Java中,您将定义清晰的模块,并编写良好的Javadoc注释来描述您的软件包以及如何使用它们。

换句话说:java开发人员可以使用某些概念来描述“这是供外部使用的接口,这是有关如何使用该接口的信息”。但是,您究竟要怎么做才是您的选择。

从这个角度来看,它与C ++非常相似。当头文件中的内容没有以合理的方式编写时,将头文件和cpp源文件分开是没有帮助的。

最后:真正的答案可能是:您依赖IDE。当我想查找接口的用法或实现时,我去询问我的IDE,它知道我的项目并可以向我展示这些东西。

答案 1 :(得分:1)

在Java中,您可以使用jar文件中定义的所有public类。

在类内部,您可以调用所有公共方法。

这是您可以使用的另外两个可见性级别,受保护的可见性级别和默认可见性(没有任何可见性关键字),可以使用一些限制。

以下是完整的可见性表(从this other answer复制):

            │ Class │ Package │ Subclass │ Subclass │ World
            │       │         │(same pkg)│(diff pkg)│ 
────────────┼───────┼─────────┼──────────┼──────────┼────────
public      │   +   │    +    │    +     │     +    │   +     
────────────┼───────┼─────────┼──────────┼──────────┼────────
protected   │   +   │    +    │    +     │     +    │   -         
────────────┼───────┼─────────┼──────────┼──────────┼────────
<default>   │   +   │    +    │    +     │     -    │   - 
────────────┼───────┼─────────┼──────────┼──────────┼────────
private     │   +   │    -    │    -     │     -    │   - 

 + : accessible         - : not accessible

这是列的定义:

  • 类-同一类(这不是您的情况,因为您使用的是由外部库定义的类)
  • Package-与您需要访问的类在同一包中定义的任何类
  • 子类(相同的程序包)-任何需要访问的类的子类,并在同一程序包中定义
  • 子类(不同的程序包)-任何需要访问的类的子类,并在不同的程序包中定义
  • 世界-任何其他类(不是相同的包也不是子类)

答案 2 :(得分:1)

一种方式是,按照惯例,Java开发人员会使用其API发布Javadoc。有时在同一个jar文件中,但通常是在一个单独的同名文件中,该文件是从同一位置下载的。

如果没有Javadoc,则可以通过反射找到库的公共接口:在类固醇上考虑C ++ RTTI,其中每个公共类名,每个公共方法名及其签名(包括其参数名)可见,并且可以在运行时和设计时以编程方式进行检索。 IDE是帮助您完成此任务的好工具。它使用反射来告诉您可用的类,并在方法名称后打开括号后立即向您显示方法的签名。