1

私は使用しています

andPredicate = Predicates.and(firstPredicate, secondPredicate);

ここで、andPredicate(JsonObject として) をシリアル化する必要があり、使用されている述語の内部リストにアクセスして、各述語のメンバーにアクセスする必要があります。

これらにアクセスする方法はありますか?

4

3 に答える 3

3

このような動作が必要な場合の答えは、独自のバージョンの Predicates.and() を作成することです。これはまったく難しくありません。Predicates.and の Guava の内部実装は、(正しくは) 実装の詳細であり、ユーザーに公開されるものではありません。

于 2012-01-03T15:58:45.357 に答える
1

これを直接取得する方法はないと思います。

とにかく、回避策として、andPredicate オブジェクトの toString() メソッドを使用できます。このメソッドの実装 (ここにリストされています) は、次のような値を返します。

And(<firstPredicate.toString()>, <secondPredicate.toString()>)

括弧の内容を取得し、各エントリを分析できる場所。

すべてのエントリはandor、または別の構成述語である可能性があるため、コンマと括弧の取り扱いには注意してください。

于 2012-01-03T10:16:19.727 に答える
1

クラスJavadocが述べているように、andPredicate は既にシリアライズ可能です。

すべてのメソッドは、シリアライズ可能なパラメーターが与えられている限り、シリアライズ可能な述語を返します。

于 2012-01-03T11:33:20.780 に答える