我维护使用旧Sun LDAP Booster Pack中的com.sun.jndi.ldap.ctl.VirtualListViewControl
的代码库,并且试图将其更新为Java 11标准。
第一个问题是,当尝试编译代码时,您会得到:
...] cannot access com.sun.jndi.ldap.BasicControl
class file for com.sun.jndi.ldap.BasicControl not found
可以通过在编译器args中添加以下内容来解决此问题:
--add-exports java.naming/com.sun.jndi.ldap=ALL-UNNAMED
这允许类路径上的Booster Pack代码访问com.sun.jndi.ldap.BasicControl
模块中的内部java.naming
,一切正常。
但是,使用--add-exports
很丑陋,更有意义的是,它与使用--release
选项不兼容,以确保您构建到特定的代码级别和API。
我一直在搜寻,但似乎找不到与更新/模块化ldapbp或VLV控件的替代实现类似的东西。
所以我的问题是:用Java 9+可以很好地替代Sun的旧VirtualListViewControl
的官方或公认的替代品吗?还是有另一种使用不需要{{1}的旧版本的替代方法? }?