Spel - 是否可以声明一个新的TokenKind值

时间:2014-07-10 11:46:07

标签: spring-el

Spring Spel支持以下TokenKind元素集。

package org.springframework.expression.spel.standard;

/**
 * @author Andy Clement
 * @since 3.0
 */
enum TokenKind {
    // ordered by priority - operands first
    LITERAL_INT, LITERAL_LONG, LITERAL_HEXINT, LITERAL_HEXLONG, LITERAL_STRING, LITERAL_REAL, LITERAL_REAL_FLOAT, 
    LPAREN("("), RPAREN(")"), COMMA(","), IDENTIFIER,
    COLON(":"),HASH("#"),RSQUARE("]"), LSQUARE("["), 
    LCURLY("{"),RCURLY("}"),
    DOT("."), PLUS("+"), STAR("*"),  MINUS("-"), SELECT_FIRST("^["), SELECT_LAST("$["), QMARK("?"), PROJECT("!["),
    DIV("/"), GE(">="), GT(">"), LE("<="), LT("<"), EQ("=="), NE("!="),
    MOD("%"), NOT("!"), ASSIGN("="), INSTANCEOF("instanceof"), MATCHES("matches"), BETWEEN("between"),
    SELECT("?["),   POWER("^"),
    ELVIS("?:"), SAFE_NAVI("?."), BEAN_REF("@")
    ;

我想知道我们是否可以声明一个新的TokenKind值和自定义对象来处理评估,该对象可以插入到现有的Spel框架中?

1 个答案:

答案 0 :(得分:1)

如果您想要引入一个新的TokenKind,如果提供的只是描述SpEL DSL并播放语言标记,那么您会感兴趣。

我想知道为什么自定义propertyAccessoroperatorOverloaderfunction对您来说还不够......

看看StandardEvaluationContext并试着找出,为什么那些高级别的钩子无法帮助你。