Как выполнить операцию leftShift для BigInteger in Groovy?
Метод leftShift определено в расширении JDK Groovy
Однако приведенный ниже код вызывает исключение UnsupportedOperationException :
Integer i = new Integer(3)
println(i << 2)
BigInteger b = new BigInteger("3")
println(b << 2)
Результат:
12 <-- working for Integer
Caught: java.lang.UnsupportedOperationException: Cannot use leftShift() on this number type: java.math.BigInteger with value: 3
java.lang.UnsupportedOperationException: Cannot use leftShift() on this number type: java.math.BigInteger with value: 3
at test.run(test.groovy:5)
Полагаю, я мог бы использовать метод BigInteger.shiftLeft () (обратите внимание, что это не leftShift , а shiftLeft ...), но, в конце концов, я хотел бы использовать оператор <<
в Number , который может быть либо Integer , либо BigInteger .
Ошибка Groovy? (Я использую 3.0.4)