java 7中的管道运算符

时间:2013-07-03 16:51:57

标签: java operators pipe

我最近在代码示例中看到了以下内容:

f.setExtendedState( f.getExtendedState()|JFrame.MAXIMIZED_BOTH );

其中f是JFrame。这个管道操作符如何调用,它做了什么以及在哪里可以找到有关它的文档?

谢谢 埃克托

4 个答案:

答案 0 :(得分:2)

那个'管道'实际上是一个包含性的或者。 f.getExtendedState()和JFrame.MAXIMIZED_BOTH可能是位域中的数字索引。使用'或'运算符将两者的属性合并为一个值。

答案 1 :(得分:0)

|运算符是Java中的bitwise-or operator

如果在任一操作数(或两者)中设置了相应的位,则按位的结果或是设置了位的值。

此处,此操作使用JFrame.MAXIMIZED_BOTH(二进制,0000 0110)的值来确保倒数第二位和倒数第三位,一个用于水平,一个用于垂直。这使f.getExtendedState()中的所有其他位保持不变。

答案 2 :(得分:0)

|代表按位包含或操作符。在这里查看详细信息:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html

答案 3 :(得分:0)

管道(|)操作符只是按位或运算符。它将遍历两个数字的相应位,并且得到的数字将具有一个on位,其中两个输入位中的任何一个都打开。在您提供给我们的情况下,运算符用于将标志添加到位域。

例如,如果您有一个flags,其中(假设)为4,则看起来像

00000100b

二进制。如果|使用数字00010000b(16),则结果为

00010100b,

包含原始标志(位位置3)和新标志位(位位置5)。