第二个长篇论点被忽略

时间:2017-12-17 21:27:17

标签: java android

我希望我在某个地方有某种奇怪的错字,但我感到很困惑。我有以下代码:

class State
{
    "constructor": new() => this; // no-arg polymorphic constructor

    public clone():this
    {
        const state = new this.constructor(); // okay
        this._copyData(state);
        return state;
    }

    // etc
}

最后一行的断点显示totalStorge和availableStorage计算得很好。转到showAvailableStorage();

public void getAvailableStorage() {
        File path = Environment.getDataDirectory();
        StatFs stat = new StatFs(path.getPath());
        long blockSize = stat.getBlockSizeLong();
        long availableStorage = blockSize * stat.getAvailableBlocksLong();
        long totalStorage = blockSize * stat.getBlockCountLong();
        mBackupView.showAvailableStorage(availableStorage, totalStorage);
    }

出于某种原因,只有第一个参数得到一个值。但是,这与我从getAvailableStorage()传递值的顺序无关。第二个参数(总计)只是被忽略而在方法中只给我一个第一个参数的值。我在这里错过了什么?即使将任意值传递给方法也会产生相同的结果。

编辑:但是,这可以出于某种原因......

public void showAvailableStorage(long free, long total) {
        float freePercentage = (float)(free/total) * 100;
    }

2 个答案:

答案 0 :(得分:0)

事实证明问题似乎是由调试器中的错误引起的。确实传递了正确的值,但在单步调试时没有显示出来。

答案 1 :(得分:0)

Many times the debugger doesn't work as expected and shows some weird value. However, your code is correct.

You can try logging the values to find out exact value.