最近、次のコード例を見ました。
f.setExtendedState( f.getExtendedState()|JFrame.MAXIMIZED_BOTH );
ここで、f は JFrame です。このパイプ演算子はどのように呼び出され、何を行い、それに関するドキュメントはどこにありますか?
ヘクターありがとう
その「パイプ」は、実際にはビットごとの包括的論理和です。f.getExtendedState() と JFrame.MAXIMIZED_BOTH は、おそらくビットフィールドの数値インデックスです。「or」演算子を使用すると、両方のプロパティが 1 つの値に結合されます。
この|
演算子は、Javaのビットごとの OR 演算子です。
ビットごとの OR の結果は、対応するビットがオペランドのいずれか (または両方) に設定されている場合、ビットが設定された値になります。
ここで、この操作はJFrame.MAXIMIZED_BOTH
(バイナリで0000 0110
) の値を使用して、最後から 2 番目と最後から 3 番目のビットが確実にオンになるようにします。1 つは水平用、もう 1 つは垂直用です。これにより、他のすべてのビットはf.getExtendedState()
そのまま残ります。
| | ビットごとの包括的 OR 演算子を表します。詳細はこちらをご確認ください:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html