シナリオ:longプリミティブNaN値が必要です
1)長い状態変数が設定されているか設定されていません。
2)この長い変数がゼロ
3を含むLong.MIN_VALUEからはLong.MAX_VALUEに有効な値を持っている)。これは、私はロングラッパー型
方法を使用したくないパフォーマンスに敏感なコードです私はこの長い間、「セットされた」種類のチェックを書いていますか? longが有効かどうかをテストするために2番目のブール値を追加する必要がありますか?これはお粗末なようです。私はここで長いラッパーを使用することができますが、これは非常に多くのオブジェクトを作成し、nullをチェックするパフォーマンスの浪費のようです。
擬似コード(これは私が欲しいものの一種である):
class foo {
long someLong = NaN; //NaN = hypothetical not a number like Double
public reset() {
someLong = NaN;
}
public doSomethingElse() {
if(someLong !=NaN) {
//report
reset();
}
}
public doSomeStuff() {
if(someLong == NaN) {
someLong = //something
}
}
}
}
設定されているか設定されていないものにブール値を使用しない理由は何ですか? – JAM
set/notに余分なブール値を使用するだけです。 – Ryan
元気です。国勢調査に感謝します。ここのブール値は適切な解決策のようです。私はそれが最も読みやすいわけではなく、他のタイプ(例えば、Object:null、double:NaN)について見ている国際大会の外だと思うが、この場合はパフォーマンスが保証されている。 –