在java中从布尔值转换为字节

2022-09-02 03:46:28

我需要将字节值设置为方法参数。我有布尔变量,它决定了要在此方法中执行的逻辑。但是我可以直接将布尔值作为字节参数传递,这是不允许的,也不能在java中强制转换。所以我现在的解决方案看起来像这样:isGenerated

myObj.setIsVisible(isGenerated ? (byte)1 : (byte)0);

但这对我来说似乎很奇怪。也许有更好的解决方案来做到这一点?


答案 1

您的解决方案是正确的。

如果您愿意,可以通过以下方式避免一个演员:

myObj.setIsVisible((byte) (isGenerated ? 1 : 0 ));

此外,还应考虑对实现进行以下更改之一:

  • 将方法更改为 setVisiblityState(字节状态),如果您需要考虑 2 个以上的可能状态

  • 将方法更改为 setIsVisible(布尔值),前提是您的方法执行其外观


答案 2

您可以使用此解决方案。我在这个非常有用的页面上找到了它

boolean vIn = true;
byte vOut = (byte)(vIn?1:0);