public static int recursiveReverse(int number, int reversenumber){

    if(number <= 0) {
        return reversenumber;
    }

    reversenumber = reversenumber * 10 + (number % 10);
    number = number/10;

    return recursiveReverse(number, reversenumber);
}


要么

private static int reversenumber = 0;

public static int recursiveReverse(int number){

    if(number <= 0) {
        return reversenumber;
    }

    reversenumber = reversenumber * 10 + (number % 10);
    number = number / 10;

    return recursiveReverse(number);
}

最佳答案

绝对不是最后一个。将状态保持变量放在静态字段中只会带来麻烦。并不是说您必须为并发而设计,例如,如果您有多个线程在运行此代码,则共享的reverseNumber字段将完全破坏所有内容。

我认为第一和第二之间没有任何区别。 (从字面上看,它们看起来与我相同。)

如果您的目标是通过为第二个参数设置默认值(reverseNumber)来简化调用约定,则只需重载您的方法即可:

public static int recursiveReverse(int number) {
    return recursiveReverse(number, 0);
}

private static int recursiveReverse(int number, int reverseNumber) {
    // your code goes here
}

10-08 10:54