Der primitive Typ boolean lässt sich nicht über eine Typumwandlung in einen anderen primitiven Typ konvertieren. Doch in der Praxis kommt es vor, dass true auf 1 und false auf 0 abgebildet werden muss; der übliche Weg ist:
int val = aBoolean ? 1 : 0;
Exotischer ist:
int val = Boolean.compare( aBoolean, false );
Noch exotischer folgendes:
int val = 1 & Boolean.hashCode( true ) >> 1;
Der letzte Ausdruck enthält keine Variable. Müsste es nicht heißen:
int val = 1 & Boolean.hashCode( aBoolean ) >> 1;
Ja, ändere ich. Danke.