シナリオ:
1) 設定することも設定しないこともできる長い状態変数があります。
2) この long 変数には、ゼロを含む Long.MIN_VALUE から Long.MAX_VALUE までの有効な値があります。
3) これはパフォーマンスに敏感なコードなので、Long ラッパー タイプは使用したくありません。
この長い間、「設定されている」種類のチェックを作成するにはどうすればよいですか? longが有効かどうかをテストするために、2番目のブール値を追加する必要がありますか? これはずさんなようです。ここで Long ラッパーを使用できることはわかっていますが、非常に多くのオブジェクトを作成して 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
}
}
}
}