パッケージ jakarta.el

クラス Expression

  • 実装されたすべてのインターフェース:
    SerializableSE
    既知の直属サブクラス
    MethodExpressionValueExpression

    public abstract class Expression
    extends ObjectSE
    implements SerializableSE
    式のサブクラス ValueExpression および MethodExpression の基本クラス。両方に共通の特性を実装します。

    2 つの式が等しいかどうかを比較できるように、すべての式は equals() および hashCode() メソッドを実装する必要があります。これらは、サブクラスでの実装を強制するために、このクラスで再定義された抽象です。

    保存および復元できるように、すべての式も Serializable である必要があります。

    Expression も不変に設計されているため、任意の式 String/FunctionMapper に対してインスタンスを 1 つだけ作成する必要があります。これにより、コンテナーは式を事前に作成でき、評価されるたびに式を再解析する必要がなくなります。

    導入:
    Jakarta Server Pages 2.1
    関連事項:
    直列化された形式
    • コンストラクターの詳細

      • Expression

        public Expression()
    • メソッドの詳細

      • getExpressionString

        public abstract StringSE getExpressionString()
        この Expression の作成に使用された元の文字列を変更せずに返します。

        これは、デバッグの目的だけでなく、比較の目的でも使用されます(たとえば、構成ファイルの式が変更されていないことを確認するため)。

        このメソッドは、式を再作成するための十分な情報を提供しません。2 つの異なる式は、式文字列はまったく同じで関数マッピングが異なる場合があります。Expression の状態を保存および復元するには、直列化を使用する必要があります。

        戻り値:
        元の式文字列。
      • equals

        public abstract boolean equals​(ObjectSE obj)
        指定されたオブジェクトがこの Expression と等しいかどうかを判断します。

        引数が null ではなく、同じ型(ValueExpression または MethodExpression)であり、解析された表現が同じである Expression オブジェクトの場合、結果は true になります。

        式の文字列が異なる場合、2 つの式が等しい場合があることに注意してください。例: ${fn1:foo()} と ${fn2:foo()} は、対応する FunctionMapper が fn1:foo と fn2:foo を同じメソッドにマッピングした場合に等しくなります。

        オーバーライド:
        クラス ObjectSEequalsSE 
        パラメーター:
        obj - Object が等しいかどうかをテストします。
        戻り値:
         obj がこの Expression と等しい場合は true。それ以外の場合は false
        関連事項:
        HashtableSE, Object.equals(java.lang.Object)SE
      • hashCode

        public abstract int hashCode()
        この Expression のハッシュコードを返します。

        式の文字列が異なる場合に 2 つの式を等しくする方法については、equals(java.lang.Object) メソッドのメモを参照してください。equals(Object) メソッドに従って 2 つのオブジェクトが等しい場合、2 つのオブジェクトのそれぞれで hashCode メソッドを呼び出すと、同じ整数の結果が生成される必要があることを思い出してください。実装では、特別な注意を払い、hashCode を正しく実装する必要があります。

        オーバーライド:
        クラス ObjectSEhashCode 
        戻り値:
        この Expression のハッシュコード。
        関連事項:
        equals(java.lang.Object), HashtableSE, Object.hashCode()
      • isLiteralText

        public abstract boolean isLiteralText()
        この式がリテラルテキストのみから作成されたかどうかを返します。

        このメソッドは、この式が作成された式文字列にエスケープされていない Jakarta Expression Language デリミタ(${...} または #{...})が含まれていない場合にのみ、true を返す必要があります。

        戻り値:
        true (この式がリテラルテキストのみから作成された場合)。それ以外の場合は false