我正在编写一个将加载第三方“驱动程序”的 Java 应用程序。我打算开发一个接口(interface),该接口(interface)将定义“驱动程序”必须实现才能在应用程序中工作所需的方法。
目的是将“驱动程序”包含在一个 jar 文件中。然后将需要第三方“驱动程序”开发人员来实现该接口(interface)。
当我试图解决这个问题时,我将“驱动程序”代码移到了一个 jar 中,发现我遇到了麻烦,因为我在主应用程序和 jar 文件中都定义了接口(interface)。
是否有推荐的方法来实现此方法,还是我走错了路?
j
最佳答案
你基本上定义了一次接口(interface),例如在一个 API jar 里。这个 jar 然后被主应用程序和驱动程序使用。
然后,驱动程序库会将此 API jar 作为主应用程序提供的依赖项。
就 Maven 而言,依赖项的作用域是provided
或 compile
库。
请注意,您应该避免在不同的库中使用相同的类两次,因为这很可能会导致类加载问题、类转换异常等(除非有一些隔离应用程序的类加载器范围,就像大多数应用程序服务器所做的那样)。
关于java - 共享界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8343648/