Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
VariablenPrüfen, ob einer von vielen boolean true ist
Aktuell versuche ich rauszufinden, ob es möglich ist über eine Methode mehrere boolean zu prüfen und festzustellen, ob da einer mit true bzw. false dabei ist.
Ich könnte das zwar auch als lange if-Abfrage schreiben, aber da es doch sehr viele sind, wäre es besser, wenn das anders ginge.
Zusammengefasst: Es gibt mehrere boolean und irgendwas soll nur ausgeführt werden, wenn da einer mit true dabei ist.
Wenn es nicht unbedingt ein boolean-array sein muss, könnte man auch mit BitSet arbeiten. Wenn die cardinality() > 0, dann ist mindestens ein true-Wert dabei.
Die Variante scheint mir am einfachsten und entspricht auch dem, was ich gern nutze. Leider scheint es nicht so recht zu funktionieren, denn es wird bei mir stets der Fall, dass nichts true ist, ausgeführt. Selbst wenn ich eine Variable direkt for der Schleife auf true setze, erkennt es das nicht.
@ XHelp
Ja das dürfte auch klappen. Ich werde mal schauen, ob das was wird.
@ Tobias
Da hab ich leider noch keine Erfahrung, aber ich schau mir das mal an.
// code
boolean[] aktiveKarte = new boolean[] {einsAktiv, zweiAktiv};
public void actionPerformed(ActionEvent e) {
einsAktiv = true;
for (boolean ak : aktiveKarte) {
if (ak) {
karteSetzbar = true;
System.out.println("true");
} else {
karteSetzbar = false;
System.out.println("nicht true");
}
//mehr code
}
Das bringt mir immer "nicht true". Eigentlich wird jeweils eine Variable danach auf true gesetzt, was dann beim nächsten Klick entweder zu true oder nicht führt. Hab auch überprüft, ob das richtig geht, und die Variable ist auch auf true, selbst wenn ich sie nicht explizit vor der Schleife auf true setze.
// code
public void actionPerformed(ActionEvent e) {
einsAktiv = true;
boolean[] aktiveKarte = new boolean[] {einsAktiv, zweiAktiv};
// Du speicherst da keine referenzen in dem Array, sondern nur werte, daher überträgst du
// Veränderungen auch nicht in deinem Beispiel.
for (boolean ak : aktiveKarte) {
if (ak) {
karteSetzbar = true;
System.out.println("true");
} else {
karteSetzbar = false; // Das willst du glaube ich nicht, das setzt dann ja deine Variable auf den letzten Wert, der in dem Array ist.
System.out.println("nicht true");
}
}