クラス ConstructorReference

java.lang.ObjectSE
org.springframework.expression.spel.ast.SpelNodeImpl
org.springframework.expression.spel.ast.ConstructorReference
実装されたすべてのインターフェース:
OpcodesSpelNode

public class ConstructorReference extends SpelNodeImpl
コンストラクターの呼び出しを表します。通常の型のコンストラクターまたは配列の構築のいずれかです。配列が構築されるときに、初期化子を指定できます。

Examples

  • new example.Foo()
  • new String('hello world')
  • new int[] {1,2,3,4}
  • new String[] {'abc','xyz'}
  • new int[5]
  • new int[3][4]
導入:
3.0
作成者:
Andy Clement, Juergen Hoeller, Sam Brannen, Harry Yang
  • コンストラクターの詳細

    • ConstructorReference

      public ConstructorReference(int startPos, int endPos, SpelNodeImpl... arguments)
      通常の型のコンストラクター参照を作成します。

      最初の引数は型です。残りはコンストラクターへの引数です。

    • ConstructorReference

      public ConstructorReference(int startPos, int endPos, SpelNodeImpl[] dimensions, SpelNodeImpl... arguments)
      配列のコンストラクター参照を作成します。

      最初の引数は配列コンポーネントの型です。2 番目の引数は、式に初期化子が指定されている場合、配列初期化子を表す InlineList です。

  • メソッドの詳細

    • getValueInternal

      public TypedValue getValueInternal(ExpressionState state) throws EvaluationException
      getValue() を実装します。配列または単純な型を構築するためのコードに委譲します。
      次で指定:
      クラス SpelNodeImplgetValueInternal 
      例外:
      EvaluationException
    • toStringAST

      public StringSE toStringAST()
      インターフェースからコピーされた説明: SpelNode
      この AST ノードの文字列形式を返します。
      戻り値:
      文字列形式
    • isCompilable

      public boolean isCompilable()
      インターフェースからコピーされた説明: SpelNode
      このノードをバイトコードにコンパイルできるかどうかを判断します。

      各ノードでの推論は異なる場合がありますが、通常は、ノードの終了型記述子が既知であるかどうか、および関連する子ノードがコンパイル可能であるかどうかをチェックします。

      デフォルトの実装は false を返します。

      このメソッドをオーバーライドする場合は、SpelNode.generateCode(MethodVisitor, CodeFlow) もオーバーライドする必要があります。

      戻り値:
      このノードをバイトコードにコンパイルできる場合は true 
      関連事項:
    • generateCode

      public void generateCode(MethodVisitor mv, CodeFlow cf)
      インターフェースからコピーされた説明: SpelNode
      このノードのバイトコードを指定された MethodVisitor に生成します。

      コンパイル中の現在の式に関するコンテキスト情報は、提供された CodeFlow オブジェクトで入手できます。たとえば、現在スタック上にあるオブジェクトの型に関する情報などです。

      SpelNode.isCompilable() が true を返さない限り、このメソッドは呼び出されません。

      デフォルトでは、SpelNode.isCompilable() は false を返すため、デフォルトの実装では IllegalStateExceptionSE がスローされます。

      このメソッドをオーバーライドする場合は、SpelNode.isCompilable() もオーバーライドする必要があります。

      パラメーター:
      mv - コードが生成される ASM MethodVisitor 
      cf - スタック上にあるものに関する情報を持つコンテキストオブジェクト
      関連事項: