2012-10-31 85 views
2

例如我可以具有可變有沒有辦法在Java中設置變量的邊界?

int x; 

和告訴編譯器X,並且不能超過20或小於-20更大,而無需編寫的方法通過循環到每次迭代檢查值? (我要在這裏提到這是一個基於矢量的遊戲的速度變量。

+0

你在哪裏需要迭代你想要在問題中描述的情況? – Lion

+0

你需要推出自己的BoundedInt類。 – Shark

+1

有界:保證性能不佳... – Aubin

回答

7

只有通過setter方法設置的變量。在此方法中,如果它試圖拋出一個異常的情況下,設置th e值超出範圍。請注意,這不適用於編譯器方面,而是在運行時,這是我相信這種檢查是必要的。

+0

就是這樣。讓我們希望遊戲結果不錯..... – Shark

+2

通常的模式是當超出範圍值傳入時,從setter中拋出'IllegalArgumentException'。 –

+0

好的,謝謝。自從它第一次接受這個答案後,其他人剛剛確認了你的意見。 – TyP

5

不,你必須手動檢查它在你的程序

1
assert -20 < x && x < 20 : "Out of range!"; 

與-ea參數上,java會檢查車況,沒有-ea的表現都達到最佳狀態。

在斷言不會被驗證java.lang.AssertionError將被拋出

+0

這是一個命令行參數嗎? – TyP

+0

是的:http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html – Aubin

相關問題