如何在速度模板中将字符串解析为bigInteger?

如果我们有整数,则可以执行以下操作(但不确定如何对bigIntger类型执行此操作):

#set( $Integer = 0 )
#set( $input1InInteger = $Integer.parseInt($input1) )

最佳答案

您需要在上下文中添加一个辅助类来完成此操作:

public class NumberHelper {
    public static final NumberHelper INSTANCE = new NumberHelper();
    private Exception lastError = null;

    private NumberHelper() {
        // intentionally empty
    }

    public void setLastError(Exception lastError) {
        this.lastError = lastError;
    }

    public Exception getLastError() {
        return lastError;
    }

    public BigInteger parseBigInteger(String numberAsString) {
        BigInteger retVal = null;

        try {
            retVal = new BigInteger(numberAsString);
        } catch(NumberFormatException e) {
            setLastError(e);
        }

        return;
    }
}


现在将它放在您的上下文中:

context.put("numberHelper", NumberHelper.INSTANCE);


并在您的模板上使用

#set( $Integer = 0 )
#set( $input1InInteger = $numberHelper.parseBigInteger($input1) )

07-26 00:58