类 ALU

java.lang.Object
org.beetl.core.misc.ALU

public class ALU extends Object
用于算数表达式,对于加法,允许null值,但其他则不允许,将抛出异常 参考了webit
作者:
xiandafu
  • 字段详细资料

    • NULL

      public static final int NULL
      另请参阅:
    • OBJECT

      public static final int OBJECT
      另请参阅:
    • STRING

      public static final int STRING
      另请参阅:
    • DOUBLE

      public static final int DOUBLE
      另请参阅:
    • FLOAT

      public static final int FLOAT
      另请参阅:
    • LONG

      public static final int LONG
      另请参阅:
    • INTEGER

      public static final int INTEGER
      另请参阅:
    • SHORT

      public static final int SHORT
      另请参阅:
    • CHAR

      public static final int CHAR
      另请参阅:
    • BIG_DECIMAL

      public static final int BIG_DECIMAL
      另请参阅:
    • scale

      public static int scale
    • round

      public static int round
  • 构造器详细资料

    • ALU

      public ALU()
  • 方法详细资料

    • getAluType

      public static int getAluType(Object left, Object right)
      获取 ALU 的类型
      参数:
      left - 左值
      right - 右值
      返回:
      ALU.AluType 类型
    • getAluType

      public static int getAluType(Class<?> cls1, Class<?> cls2)
      获取 ALU 的类型
      参数:
      cls1 - 左值的类型
      cls2 - 右值的类型
      返回:
      ALU.AluType 类型
    • getBaseTypeClass

      public static Class<?> getBaseTypeClass(Class<?> cls1, Class<?> cls2)
      根据类型,先计算 ALU.AluType,再返回对应的 Class
      参数:
      cls1 - 左值的类型
      cls2 - 右值的类型
      返回:
      Java 类型,默认为 Object
      另请参阅:
    • getNumberType

      public static int getNumberType(Number num)
      获取 Number 实例的 ALU 类型
      参数:
      num - Number 类型的实例
      返回:
      ALU.AluType 类型
    • getAluType

      public static int getAluType(Object obj)
      获取 Object 实例的 ALU 类型
      参数:
      obj - Object 类型的实例
      返回:
      ALU.AluType 类型
    • plusOne

      public static Object plusOne(Object obj, ASTNode node)
      加1操作
      参数:
      obj - 值
      node - AST结点
      返回:
      加1后的值
    • minusOne

      public static Object minusOne(Object obj, ASTNode node)
      减1操作
      参数:
      obj - 值
      node - AST结点
      返回:
      减1后的值
    • plus

      public static Object plus(Object o1, Object o2, ASTNode node1, ASTNode node2)
      相加操作: o1 + o2
      参数:
      o1 - 左值
      o2 - 右值
      node1 - AST结点
      node2 - AST结点
      返回:
      相加的结果
    • minus

      public static Object minus(Object o1, Object o2, ASTNode node1, ASTNode node2)
      相减操作: o1 - o2
      参数:
      o1 - 左值
      o2 - 右值
      node1 - AST结点
      node2 - AST结点
      返回:
      o1o2 的结果
    • negative

      public static Object negative(Object o1, ASTNode node)
      取反操作: -o1
      参数:
      o1 - 值
      node - AST 结点
      返回:
      o1 取反后的值
    • mult

      public static Object mult(Object o1, Object o2, ASTNode node1, ASTNode node2)
      相乘操作: o1 * o2
      参数:
      o1 - 左值
      o2 - 右值
      node1 - AST结点
      node2 - AST结点
      返回:
      o1 乘以 o2 的结果
    • div

      public static Object div(Object o1, Object o2, ASTNode node1, ASTNode node2)
      相除操作: o1 / o2
      参数:
      o1 - 左值
      o2 - 右值
      node1 - AST结点
      node2 - AST结点
      返回:
      o1 乘以 o2 的结果
    • mod

      public static Object mod(Object o1, Object o2, ASTNode node1, ASTNode node2)
    • equals

      public static boolean equals(Object o1, Object o2)
    • notEquals

      public static boolean notEquals(Object o1, Object o2)
    • greater

      public static boolean greater(Object o1, Object o2, ASTNode node1, ASTNode node2)
    • greaterEquals

      public static boolean greaterEquals(Object o1, Object o2, ASTNode node1, ASTNode node2)
    • less

      public static boolean less(Object o1, Object o2, ASTNode node1, ASTNode node2)
    • lessEquals

      public static boolean lessEquals(Object o1, Object o2, ASTNode node1, ASTNode node2)
    • isTrue

      public static Boolean isTrue(Object o, ASTNode node)