有 Java 编程相关的问题?

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

反射以一种安全的方式调用API方法,防止JAVA中库版本之间的更改

我必须在第三方JAR中调用一个java方法,其方式与两个不同版本的API兼容

这个差异很小,因为新版本中有一个额外的参数,但我应该确保我的应用程序可以在两个版本的库中运行和编译

我提供的最佳选择是使用反射来检查各种方法的哪个版本可用,然后在运行时调用正确的方法,但我想知道是否有更优雅的方法,可能是使用第三方库

谢谢


共 (1) 个答案

  1. # 1 楼答案

    如果你事先知道你的代码将链接到第三方库的哪个版本,你可以单独拥有一个小的包装库,为两个API版本提供一个公共接口

    如果你没有这种能力,反思可能是一种方式。根据项目及其构建系统的设置方式,您甚至可以使用几个适配器类,这些类将在检测到第三方库的API版本后在运行时加载。这样,您就不会受到与反射方法调用相关的性能影响

    也就是说,您可能希望使用适当的部署框架(如OSGi)来处理此类依赖性问题