当前位置: 首页 > 知识库问答 >
问题:

在 Java 中找不到接口的实现类

皮自明
2023-03-14

我正在尝试修改此链接中给出的Openmrs rest调用:https://github.com/openmrs/openmrs-module-webservices.rest/blob/master/omod-common/src/main/java/org/openmrs/module/webservices/rest/web/v1_0/controller/SessionController.java

它在代码中导入了一个Spring框架org.springframework.web.context.request.Web请求。我无法跟踪openmrs存储库中实现此接口Web请求的类的位置。

openmrs 存储库在此链接上给出 -https://github.com/openmrs/openmrs-module-webservices.rest

到目前为止,我在Openmrs wiki上看到了一条小线,上面写着——我们所有的服务都是接口。这些服务的默认实现名为*ServiceImpl.java。这些实现可以在api包的impl目录中找到。

谁能帮我弄清楚如何找到实现类?

共有1个答案

何章横
2023-03-14

这是Spring的界面。所以Spring创建并注入了它的一些实现。

import org.springframework.web.context.request.WebRequest;

如果您可以运行和调试代码,将断点放入此控制器,向此endpoint发出请求,然后您就可以找到实现类。

根据文档,它将是这些类之一:DispatcherServletWebRequest,FacesWebRequest,NoSupportAsyncWebRequest,PortletWebRequest,ServletWebRequest,StandardServletAsyncWebRequest

通过快速查找,我无法在repo中找到servlet配置。所以我真的不知道会是哪一类。DispatcherServletWebRequest是最常见的,因为Spring MVC主要与Spring的DispatcherServlet过滤器一起使用。

 类似资料:
  • 问题内容: 前一段时间,我遇到了一段代码,该代码使用了一些标准Java功能来定位实现给定接口的类。我知道这些函数隐藏在某些非逻辑的位置,但是由于包名称暗含,它们可以用于其他类。那时我不需要它,所以我忘记了它,但是现在我需要了,而且似乎无法再次找到这些函数。在哪里可以找到这些功能? 编辑:我不是在寻找任何IDE函数或任何东西,而是可以在Java应用程序中执行的东西。 问题答案: 不久前,我整理了一个

  • 问题内容: 我正在实现一个接口,现在我想在classpath中获得该接口的所有实现。这可能还是我应该做些其他的事情? 问题答案: 充其量,这将是昂贵的。在最坏的情况下(取决于类加载器),这可能是不可能的。 我强烈建议您寻找一种替代方法来解决您要解决的基本问题。

  • 问题内容: 我尝试使用Java ServiceLoader查找实现特定接口的所有类,如下所示: 不幸的是,当我在调试模式下运行Eclipse时,ServiceLoader找不到任何类。我觉得我错过了一个琐碎的事情… 问题答案: 无法做到。 为了将类公开为可以被发现的服务,您需要将其名称放入提供程序配置文件中,如使用Java平台创建可扩展应用程序中所述 。 没有内置的方法可以找到实现特定接口的所有类

  • 问题内容: 如何创建实现此接口的Clojure对象,然后从Java代码调用它? 问题答案: 是实现接口的首选- 重型,较旧且较慢,因此应尽可能避免。一个实现看起来像:

  • 问题内容: 有没有为接口方法创建默认实现的首选方法或样式?假设我有一个常用的接口,在90%的情况下,我想要的功能是相同的。 我的第一个直觉是用静态方法创建一个具体的类。然后,当我想要默认功能时,可以将功能委托给静态方法。 这是一个简单的示例: 接口 方法的具体实现 使用默认功能的具体实现 这里有更好的方法吗? 编辑 在看到了一些建议的解决方案之后,我认为我应该更加清楚自己的意图。本质上,我正在尝试

  • 问题内容: 我有一个对象。我想确定对象表示的类型是否实现特定的接口。我想知道如何实现? 我有以下代码。基本上,它所做的是获取指定包中所有类的数组。然后,我想遍历数组并将添加实现接口的Class对象添加到我的地图。问题是将一个对象作为参数。我无法实例化接口。所以我对此感到茫然。有任何想法吗? 问题答案: 您应该使用: