我需要将字节值设置为方法参数。我有一个布尔变量isGenerated
,它确定在此方法内要执行的逻辑。但是我不能直接将布尔值作为字节参数传递,因为这在Java中不被允许并且无法进行强制转换。所以现在我的解决方案看起来像这样:
myObj.setIsVisible(isGenerated ? (byte)1 : (byte)0);
但对我来说这似乎有些奇怪。或许存在更好的解决方案吗?
我需要将字节值设置为方法参数。我有一个布尔变量isGenerated
,它确定在此方法内要执行的逻辑。但是我不能直接将布尔值作为字节参数传递,因为这在Java中不被允许并且无法进行强制转换。所以现在我的解决方案看起来像这样:
myObj.setIsVisible(isGenerated ? (byte)1 : (byte)0);
但对我来说这似乎有些奇怪。或许存在更好的解决方案吗?
你的解决方案是正确的。
如果您愿意,可以通过以下方式避免进行一个强制类型转换:
myObj.setIsVisible((byte) (isGenerated ? 1 : 0 ));
另外,您应考虑以下更改来实现:
如果需要考虑超过2个可能状态,请更改您的方法为类似于setVisiblityState(byte state)的内容。
如果您的方法执行的是其名称所示的操作,请将其更改为setIsVisible(boolean value)。
myObj.setIsVisible((byte) isGenerated));
这样写是否可行?因为 isGenerated
已经是 true|false
,我假设它已经被转换成了 1|0
,所以避免使用 ?:
操作符。如果我理解有误,请纠正我,因为这可能因语言而异。 - Matt
setIsVisible
的方法接受除布尔值以外的任何东西,这很奇怪... - assylias