我希望我在某个地方有某种奇怪的错字,但我感到很困惑。我有以下代码:
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;
}
答案 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.