我正在编写一个需要能够使用多个版本的库(封装后端接口)的客户端(Eclipse RCP)。该库的每个版本都添加了一些客户端使用的新类/方法。如果使用较旧的 lib 版本,客户端将访问 lib 字节码中不存在的新类/方法,从而导致 NoClassDefFoundError。
所以我正在考虑如何以最好的方式做到这一点。使其失效安全的最简单方法是将所有对此类代码的调用包装到我猜的 try/catch 块中。我正在考虑编写一个自定义注释来标记库源中的新代码,然后在从不受 try/catch 保护的代码中访问此类标记的代码时发出编译器警告(这可以通过自定义注释来完成吗?避风港以前没写过)。或者有人能想出一种更优雅的不同方法吗?