如果它是基于某些逻辑生成的,那么布尔值会自动更新吗?

问题描述 投票:0回答:2

我已经声明了一个int x:

int x = 1;

假设我声明了这样的布尔值

boolean myBool = x<2;

现在我将x的值更改为5.如果我再次调用布尔值,

x=5;
System.out.println(myBool);

它现在会将值更改为false吗?如果没有,我怎么能实现这个目标?

java
2个回答
5
投票

Java中没有魔力,变量也不会神奇地改变状态。要获得布尔更改状态,必须对其执行编码,最好使用public boolean isMyBool()方法返回计算的属性值而不使用字段。

private int x = 0;
// boolean myBool = x < 2; // nope -- get rid of

public boolean isMyBool() {
    return x < 2;
}

1
投票

要添加到现有答案,您正在寻找一个boolean值函数。在Java中,这被称为Predicate

您可以定义以下IntPredicate

IntPredicate myPredicate = x -> x < 2;

这将为传递给它的int参数的不同值产生以下输出:

myPredicate.test(1); // True
myPredicate.test(5); // False
© www.soinside.com 2019 - 2024. All rights reserved.