|
|
1
2
@劳伦斯约翰斯顿的自答草图如何在构建时做到这一点。我认为这基本上是正确的想法,但您可能不希望插件API抛出检查过的异常。理想情况下,您希望旧平台的实现尽最大努力来执行请求的功能。 如果您想在运行时做出决定,可以:
无论哪种情况,您都需要确保基本应用程序类(用于所有平台)不会静态地依赖于任何更高级的sdk/jdk。 最后,我倾向于摒弃Java的古老版本。许多年前,他们是“生命的终结”,支持他们的要求显然阻碍了你。例如,在核心应用程序中向后兼容性的要求意味着它不能利用最近Java发行版中添加的许多新特性。你的客户中有多少人还在使用那些古老的Java版本?为什么他们不能升级他们的平台?他们真的需要最新版本的应用程序吗? |
|
|
2
2
一个想法是创建两个具有相同接口、完整实现和存根的类,这两个类都具有issupported()方法,并且存根中的所有其他方法都会引发一个unsupportedOperationException。然后我可以在编译期间在Ant脚本中有条件地包含正确的类。 我选择使用这种方法而不是更动态的方法@stephen c,因为它非常适合我们的目的,而且我们对设备(包括设备文件系统)的访问非常有限,因此很难部署多个JAR、设置类路径等。 我最后做的是:
|