What does the |= operator do in Java?
java, operators
Solution
`|=` is a bitwise-OR-assignment operator. It takes the current value of the LHS, bitwise-ors the RHS, and assigns the value back to the LHS (in a similar fashion to `+=` does with addition).
For example:
foo = 32; // 32 = 0b00100000
bar = 9; // 9 = 0b00001001
baz = 10; // 10 = 0b00001010
foo |= bar; // 32 | 9 = 0b00101001 = 41
// now foo = 41
foo |= baz; // 41 | 10 = 0b00101011 = 43
// now foo = 43
Problem
While reading the Android guide to Notifications, I stumbled across this: Adding vibration You can alert the user with the the default vibration pattern or with a vibration pattern defined by your application. To use the default pattern, add "DEFAULT_VIBRATE" to the defaults field: ``` notification.defaults |= Notification.DEFAULT_VIBRATE; ``` What this does is clear: it adds the `DEFAULT_VIBRATE` flag to the default flags of the notification object. But what does the `|=` operator do in Java? It looks like an "OR", but how does it work? Can you provide an example using numbers? Thanks