是否可以将字符串10与数字10相乘

问题描述 投票:-2回答:1

乘以'10' * 10给出一些输出值10101010101010101010

任何人都可以证明这一点吗?

ExpressionParser parser = new SpelExpressionParser();
System.out.println(parser.parseExpression("'10' * 10").getValue());

输出:10101010101010101010

java spring spring-el
1个回答
1
投票

它应该抛出一些异常,因为在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>
 */
© www.soinside.com 2019 - 2024. All rights reserved.