public abstract class Expression extends ObjectSE implements SerializableSE
ValueExpression および MethodExpression の基本クラス。両方に共通の特性を実装します。2 つの式が等しいかどうかを比較できるように、すべての式は equals() および hashCode() メソッドを実装する必要があります。これらは、サブクラスでの実装を強制するために、このクラスで再定義された抽象です。
保存および復元できるように、すべての式も Serializable である必要があります。
Expression も不変に設計されているため、任意の式 String/FunctionMapper に対してインスタンスを 1 つだけ作成する必要があります。これにより、コンテナーは式を事前に作成でき、評価されるたびに式を再解析する必要がなくなります。
| コンストラクターと説明 |
|---|
Expression() |
| 修飾子と型 | メソッドと説明 |
|---|---|
abstract boolean | equals(ObjectSE obj) 指定されたオブジェクトがこの Expression と等しいかどうかを判断します。 |
abstract StringSE | getExpressionString() この Expression の作成に使用された元の文字列を変更せずに返します。 |
abstract int | hashCode() この Expression のハッシュコードを返します。 |
abstract boolean | isLiteralText() この式がリテラルテキストのみから作成されたかどうかを返します。 |
cloneSE, finalizeSE, getClassSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic abstract StringSE getExpressionString()
Expression の作成に使用された元の文字列を変更せずに返します。これは、デバッグの目的だけでなく、比較の目的でも使用されます(たとえば、構成ファイルの式が変更されていないことを確認するため)。
このメソッドは、式を再作成するための十分な情報を提供しません。2 つの異なる式は、式文字列はまったく同じで関数マッピングが異なる場合があります。Expression の状態を保存および復元するには、直列化を使用する必要があります。
public abstract boolean equals(ObjectSE obj)
Expression と等しいかどうかを判断します。 引数が null ではなく、同じ型(ValueExpression または MethodExpression)であり、解析された表現が同じである Expression オブジェクトの場合、結果は true になります。
式の文字列が異なる場合、2 つの式が等しい場合があることに注意してください。例: ${fn1:foo()} と ${fn2:foo()} は、対応する FunctionMapper が fn1:foo と fn2:foo を同じメソッドにマッピングした場合に等しくなります。
ObjectSE の equalsSE obj - Object が等しいかどうかをテストします。obj がこの Expression と等しい場合は true。それ以外の場合は false。HashtableSE, Object.equals(java.lang.Object)SEpublic abstract int hashCode()
Expression のハッシュコードを返します。 式の文字列が異なる場合に 2 つの式を等しくする方法については、equals(java.lang.Object) メソッドのメモを参照してください。equals(Object) メソッドに従って 2 つのオブジェクトが等しい場合、2 つのオブジェクトのそれぞれで hashCode メソッドを呼び出すと、同じ整数の結果が生成される必要があることを思い出してください。実装では、特別な注意を払い、hashCode を正しく実装する必要があります。
ObjectSE の hashCodeSE Expression のハッシュコード。equals(java.lang.Object), HashtableSE, Object.hashCode()SEpublic abstract boolean isLiteralText()
このメソッドは、この式が作成された式文字列にエスケープされていない Jakarta Expression Language デリミタ(${...} または #{...})が含まれていない場合にのみ、true を返す必要があります。
true (この式がリテラルテキストのみから作成された場合)。それ以外の場合は false。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.