是否可以防止從int中減去int?最終的關鍵字在這裏不起作用,因爲我仍然需要添加它。謝謝!防止Int被減去
防止Int被減去
回答
public class AddButNoSubtract {
private int i; // private
public int getI() {
return i;
}
public void incrementBy(int j) { // instead of setter
// add if positive
if (j > 0) {
// check for overflow
if (Integer.MAX_VALUE - j >= i)
this.i += j;
}
}
}
謝謝!這正是我所需要的。 – sparklyllama
@sparklyllama很高興幫助。 +1的問題。 –
您可以使用Integer包裝類而不是int,因爲Integer類是不可變的。
另一個想法:
不要暴露你的字符串作爲一個公共變量,只需提供方法(縣)修改INT。如果有人試圖減去那個字符串,那麼你可以在你的方法中控制它。
即使您只是禁用相減,用戶仍然可以添加一個負數...因此繞過你的防守。包裝是唯一的東西,你可以在這裏使用
public class myInteger{
private int innerVal;
public int getInnerVal(){ return innerVal};
public void myInteger(int val) { innerVal = val;}
public void add(myInteger secondInt)
{
int sum = innerVal + secondInt.innerVal;
if(sum > innerVal)
{
innerVal = sum;
}
}
}
+1避免溢出的好方法。 –
@PeterLawrey謝謝 –
是否有可能阻止一個int從被扣除?
如果int
變量訪問(而不是final
),那麼第
做這種事情的唯一方法是使變量不可訪問(如private
),然後提供一些方法,允許打電話給你想要發生的事情,並禁止你不想發生的事情。
- 1. 從long long int中減去int int
- 2. 從int中減去0x8000
- 3. 帶點的Int值減去一個Int
- 4. 從其減去從int長長
- 5. 從int無格式減去秒
- 6. 防止從去離屏幕
- 7. 防止去頂頁面
- 8. 防止LostFocus在兒童元素失去焦點時被觸發
- 9. 減去INT:可能有損轉換INT爲char
- 10. 如何減去兩個日期和值將被存儲爲數字(int)?
- 11. 防止其他被運行
- 12. 防止NSTextField被留空
- 13. 防止被稱爲負載
- 14. 從類防止被instanstiated
- 15. 防止窗口被捕獲
- 16. 防止文件被覆蓋
- 17. 防止HTML代碼被盜
- 18. 防止Winform被最大化?
- 19. 如何防止apikey被盜?
- 20. 防止數據被盜取
- 21. NullIf()防止被零除
- 22. 防止被腳本抓取
- 23. 防止window.onload被覆蓋javascript
- 24. 如何防止被「&
- 25. 防止ID 1被刪除
- 26. 防止iframe被竊取
- 27. 防止被顯示在JSF [
- 28. 防止PWA被安裝
- 29. CScript/WScript防止錯誤被阻止
- 30. Libssh2:防止後臺任務被終止
你爲什麼要這麼做?如果你能提供一個很好的例子,或許我們可以提出一個替代方案。 –
什麼是阻止某人添加負數呢? – Sinkingpoint
@sparklyllama請接受提供給您的答案之一或詢問是否缺少 –