私は使用しています
andPredicate = Predicates.and(firstPredicate, secondPredicate);
ここで、andPredicate
(JsonObject として) をシリアル化する必要があり、使用されている述語の内部リストにアクセスして、各述語のメンバーにアクセスする必要があります。
これらにアクセスする方法はありますか?
私は使用しています
andPredicate = Predicates.and(firstPredicate, secondPredicate);
ここで、andPredicate
(JsonObject として) をシリアル化する必要があり、使用されている述語の内部リストにアクセスして、各述語のメンバーにアクセスする必要があります。
これらにアクセスする方法はありますか?
このような動作が必要な場合の答えは、独自のバージョンの Predicates.and() を作成することです。これはまったく難しくありません。Predicates.and の Guava の内部実装は、(正しくは) 実装の詳細であり、ユーザーに公開されるものではありません。
これを直接取得する方法はないと思います。
とにかく、回避策として、andPredicate オブジェクトの toString() メソッドを使用できます。このメソッドの実装 (ここにリストされています) は、次のような値を返します。
And(<firstPredicate.toString()>, <secondPredicate.toString()>)
括弧の内容を取得し、各エントリを分析できる場所。
すべてのエントリはand
、or
、または別の構成述語である可能性があるため、コンマと括弧の取り扱いには注意してください。
クラスJavadocが述べているように、andPredicate は既にシリアライズ可能です。
すべてのメソッドは、シリアライズ可能なパラメーターが与えられている限り、シリアライズ可能な述語を返します。