乘以'10' * 10
给出一些输出值10101010101010101010
任何人都可以证明这一点吗?
ExpressionParser parser = new SpelExpressionParser();
System.out.println(parser.parseExpression("'10' * 10").getValue());
输出:10101010101010101010
它应该抛出一些异常,因为在java中我们不能将字符串与数字相乘。
SpEL不是Java它有一些相似之处,但它不是Java。它没有lambda,它有许多不同的语法。
应用于字符串的乘数运算符意味着将该字符串连接多次。
与'10' + '10' = '1010'
,'10' * 2 = '1010'
相似。
OpMultiply
类中的Javadoc:
/**
* Implements the {@code multiply} operator directly here for certain types
* of supported operands and otherwise delegates to any registered overloader
* for types not supported here.
* <p>Supported operand types:
* <ul>
* <li>numbers
* <li>String and int ('abc' * 2 == 'abcabc')
* </ul>
*/