ip-lookup 構造を実装している間、キーの「フロア」(つまり、指定された値以下の最大のキー) を検索できるトライのような構造でキーのセットを維持しようとしていました。鍵)。私は 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]]
同じ機能を持つクリーンな方法はありますか? このメソッドが公開されていないのはなぜですか?