public abstract class Operator extends SpelNodeImpl
| 修飾子と型 | クラスと説明 |
|---|---|
protected static class | Operator.DescriptorComparison 記述子比較は、2 つのオペランドの記述子を比較した結果をカプセル化し、互換性のあるレベルを示します。 |
| 修飾子と型 | フィールドと説明 |
|---|---|
protected java.lang.String | leftActualDescriptor |
protected java.lang.String | rightActualDescriptor |
children, exitTypeDescriptor, posAALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASM6, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V1_9| コンストラクターと説明 |
|---|
Operator(java.lang.String payload, int pos, SpelNodeImpl... operands) |
| 修飾子と型 | メソッドと説明 |
|---|---|
static boolean | equalityCheck(EvaluationContext context, java.lang.Object left, java.lang.Object right) 指定されたオペランド値の等価性チェックを実行します。 |
protected void | generateComparisonCode(MethodVisitor mv, CodeFlow cf, int compInstruction1, int compInstruction2) 数値比較演算子は非常によく似た生成コードを共有し、2 つの比較命令のみが異なります。 |
SpelNodeImpl | getLeftOperand() |
java.lang.String | getOperatorName() |
SpelNodeImpl | getRightOperand() |
protected boolean | isCompilableOperatorUsingNumerics() |
java.lang.String | toStringAST() すべての演算子の文字列形式は同じです '(' [operand] [operator] [operand] ')' |
generateCode, generateCodeForArgument, generateCodeForArguments, getChild, getChildCount, getEndPosition, getExitDescriptor, getObjectClass, getStartPosition, getTypedValue, getValue, getValue, getValueInternal, getValueRef, isCompilable, isWritable, nextChildIs, setValue@Nullable protected java.lang.String leftActualDescriptor
@Nullable protected java.lang.String rightActualDescriptor
public Operator(java.lang.String payload,
int pos,
SpelNodeImpl... operands)public SpelNodeImpl getLeftOperand()
public SpelNodeImpl getRightOperand()
public final java.lang.String getOperatorName()
public java.lang.String toStringAST()
protected boolean isCompilableOperatorUsingNumerics()
protected void generateComparisonCode(MethodVisitor mv, CodeFlow cf, int compInstruction1, int compInstruction2)
public static boolean equalityCheck(EvaluationContext context, @Nullable java.lang.Object left, @Nullable java.lang.Object right)
このメソッドは、サブクラスでのリフレクト比較に使用されるだけでなく、コンパイルされた式コードからも使用されるため、ここで public static として宣言する必要があります。
context - 現在の評価コンテキスト left - 左側のオペランド値 right - 右側のオペランド値