Можно ли предотвратить вычитание int? Последнее ключевое слово здесь не сработает, так как мне все еще нужно добавить к нему. Спасибо!
Предотвратить вычитание Int
Ответы (4)
Вы можете использовать класс-оболочку 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;
}
}
}
Можно ли предотвратить вычитание int?
Если доступна переменная int
(а не final
), то Нет.
Единственный способ сделать это — сделать переменную недоступной (например, private
), а затем предоставить методы, которые позволяют вызывающей стороне делать то, что вы хотите, и запрещать то, чего вы не хотите.