У меня есть сценарий, в котором объект, получающий от пользовательского интерфейса, передает логическое значение, и он сохраняется в базе данных как целое, например TRUE = 1 и FALSE = 0. Теперь, когда флаг изменен на ex до FALSE, мне нужно сравнить его целочисленное значение, если его 0 ничего не делает, если 1 затем изменится на 0 и обновится. Один путь ниже, но, возможно, лучший способ сделать это.
class AClient {
static Boolean x;
}
class BServer {
static Integer y;
}
public class Demo {
public static void main(String[] args) {
AClient.x = Boolean.TRUE;
BServer.y = 0;
System.out.println(storedValues());
}
private static Boolean storedValues() {
if (AClient.x) {
if (BServer.y.equals(new Integer(1))) {
return true;
} else {
return false;
}
} else {
if (BServer.y.equals(new Integer(1))) {
return false;
} else {
return true;
}
}
}
}
Выход: false
Метод storedValues
может быть уменьшен до:
return AClient.x.equals(BServer.y.equals(1));
Если x
и y
не должны иметь значение null, я заменил бы их примитивами вместо класса-оболочки, а затем storedValues
мог бы выглядеть так:
return BServer.y == 1 == AClient.x;
Вы также можете изменить возвращаемый тип storedValues
на boolean
.
Там более короткий способ написать это:
Вместо:
if (BServer.y.equals(new Integer(1))) {
return true;
} else {
return false;
}
записывать:
return (BServer.y == 1) ? true : false;