在实现 ip-lookup 结构时,我试图在类似 trie 的结构中维护一组键,允许我搜索键的“地板”(即小于或等于给定的最大键钥匙)。我决定使用 Apache Collections 4 PatriciaTrie但遗憾的是,我发现floorEntry和相关方法不是public
. 我目前的“肮脏”解决方案是用反射强迫他们(在 Scala 中):
val pt = new PatriciaTrie[String]()
val method = pt.getClass.getSuperclass.getDeclaredMethod("floorEntry", classOf[Object])
method.setAccessible(true)
// and then for retrieving the entry for floor(key)
val entry = method.invoke(pt, key).asInstanceOf[Entry[String, String]]
有没有什么干净的方法可以拥有相同的功能?为什么这种方法不公开?