有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java与jdk7和jdk8上的(已更改的)doclet API保持兼容

我正在开发一个使用DocletAPI的maven插件(例如ConfigurationImpl.getInstance()HtmlDocletWriter.commentTagsToString())。此API包含在工具中。JDK附带的jar

在jdk8上,这些方法已经不存在了,因此插件中断

我现在正在寻找一种方法,使我的插件能够同时使用jdk7和JDK8

我正在考虑使用一个提供稳定API的接口,并为每个JDK提供不同的实现。但是,我不确定如何切换/加载正确的实现。请注意,所有内容都需要打包在同一个jar(maven插件)中

有什么建议吗


共 (1) 个答案

  1. # 1 楼答案

    创建一个工厂,为您提供一个接口实例。在工厂内检查java.version系统属性。如果是>= 8,那么您将为JDK 8实例化接口实现,否则为JDK 7实例化接口实现。这些实现类只能在该工厂中加载。因此,您不会遇到缺少API的问题,因为不会加载依赖于该API的类