Paramètre avec un OU inclusif
Bonjour,
J'ai récemment vu un code qui m'intrigue. Sur Android, lorsque l'on souhaite écouter des informations sur le téléphone, on appelle une méthode de cette façon :
Code:
1 2 3 4 5
| mManager.listen(mListener, PhoneListener.LISTEN_CALL_STATE
| PhoneListener.LISTEN_SIGNAL_STRENGTH
| PhoneListener.LISTEN_DATA_CONNECTION_STATE
| PhoneListener.LISTEN_SERVICE_STATE
| PhoneListener.LISTEN_CELL_LOCATION); |
Chaque constante est un Integer allant de 1 à 4. Comment la méthode listen arrive à retrouver tout les éléments passés dans le deuxième paramètre ?
En l’occurrence je passe :
1 : 0001
2 : 0010
3 : 0011
4 : 0100
Ce qui me donne : 0111 soit 7 et à partir de ce nombre 7, je retrouve comment les 4 (ou plus, ou moins) éléments passés en paramètre ?