我最近在代码示例中看到了以下内容:
f.setExtendedState( f.getExtendedState()|JFrame.MAXIMIZED_BOTH );
其中f是JFrame。这个管道操作符如何调用,它做了什么以及在哪里可以找到有关它的文档?
谢谢 埃克托
答案 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)。