Java中boolean类型转换为int类型
在 Java 中将 boolean
转换为 int
最受接受的方法是什么?
What is the most accepted way to convert a boolean
to an int
in Java?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
^^
PS:真 = 1 假 = 0
^^
PS : true = 1 and false = 0
使用三元运算符是完成您想要的操作的最简单、最有效且最具可读性的方法。我鼓励您使用这个解决方案。
然而,我无法抗拒提出一个替代的、人为的、低效的、不可读的解决方案。
嘿,人们喜欢投票给这么酷的答案!
编辑
顺便说一句,我经常看到从布尔值到整数的转换,其唯一目的是比较两个值(通常,在
compareTo
方法的实现中) 。Boolean#compareTo
是在这些特定情况下要采取的方法。编辑 2
Java 7 引入了一个新的实用函数,可以直接使用原始类型,
Boolean#compare
(感谢 shmosel)Using the ternary operator is the most simple, most efficient, and most readable way to do what you want. I encourage you to use this solution.
However, I can't resist to propose an alternative, contrived, inefficient, unreadable solution.
Hey, people like to vote for such cool answers !
Edit
By the way, I often saw conversions from a boolean to an int for the sole purpose of doing a comparison of the two values (generally, in implementations of
compareTo
method).Boolean#compareTo
is the way to go in those specific cases.Edit 2
Java 7 introduced a new utility function that works with primitive types directly,
Boolean#compare
(Thanks shmosel)简单的
simple
如果您使用 Apache Commons Lang (我认为很多项目都使用它),你可以像这样使用它:
如果
boolean_expression
为 true,toInteger
方法返回 1,否则返回 0If you use Apache Commons Lang (which I think a lot of projects use it), you can just use it like this:
toInteger
method returns 1 ifboolean_expression
is true, 0 otherwise这取决于具体情况。通常,最简单的方法是最好的,因为它很容易理解:
或
但有时使用枚举而不是布尔标志很有用。假设存在同步和异步过程:
在 Java 中,枚举可以具有附加属性和方法:
That depends on the situation. Often the most simple approach is the best because it is easy to understand:
or
But sometimes it useful to use an Enum instead of a boolean flag. Let imagine there are synchronous and asynchronous processes:
In Java, enum can have additional attributes and methods:
如果
true -> 1
和false -> 0
映射就是你想要的,你可以这样做:If
true -> 1
andfalse -> 0
mapping is what you want, you can do:如果你想混淆,可以使用这个:
If you want to obfuscate, use this:
让我们玩一下
Boolean.compare(boolean, boolean)
吧。函数的默认行为:如果两个值相等,则返回0
,否则返回-1
。解释:众所周知,如果不匹配,Boolean.compare 的默认返回值为 -1,因此 +1 使
False
0 > 和 1 表示True
Lets play trick with
Boolean.compare(boolean, boolean)
. Default behavior of function: if both values are equal than it returns0
otherwise-1
.Explanation: As we know default return of Boolean.compare is -1 in case of mis-match so +1 make return value to 0 for
False
and 1 forTrue
然后使用:
Then use :