Gegenteil von Setter-Methoden

Diskutiere Gegenteil von Setter-Methoden im Java Basics - Anfänger-Themen Forum; Hallo zusammen, manchmal benötige eine Variable, um anzuzeigen, ob etwas gesetzt wurde. Z.B., ob etwas ausgewählt wurde. Dann muss ich, wenn...

  1. propra
    propra Neues Mitglied
    Hallo zusammen,

    manchmal benötige eine Variable, um anzuzeigen, ob etwas gesetzt wurde. Z.B., ob etwas ausgewählt wurde.
    Dann muss ich, wenn ich die Auswahl aufheben möchte, natürlich auch diesen Wert löschen.
    Also kommt so etwas hier heraus:
    Code (Java):
    public void setIsSomethingSet(boolean bool) {
            somethingToSet = bool;
        }
    Jetzt empfinde ich diese Konstruktion als komisch und das ist eigentlich oft ein Zeichen dafür, dass es falsch ist bzw. cleverer gelöst werden kann.
    Kann mir jemand verraten, wie man solche Situationen am besten löst?

    Vielen Dank
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. Sym
    Sym Guest
    Code (Java):
    public void setSomethingToSet(boolean bool) {
            somethingToSet = bool;
        }
    Das is lässt man in der Regel weg. :)
     
  4. SlaterB
    SlaterB Guest
    grundsätzlich besteht natürlich auch die Möglichkeit, in der Variablen selbst das Nicht-Gesetzt-Seit auszudrücken,
    durch null-Wert oder eine bestimmte Konstante,
    für primitive Datentypen sicherlich schwieriger, da gibts noch 0 oder -1, bei boolean wirds haarig ;)
     
  5. Gast2
    Gast2 Guest
    Wenns dir nur darum geht die Variable somethingToSet "umzudrehen" dann könnte man auch sowas machen:
    Code (Java):
    public void flipSomething() {
        something = !something;
    }
    Dann muss der Aufrufer sich nicht darum kümmern den aktuellen Status zu holen.

    Ansonsten, siehe Syms antwort. Das ist dann nen normaler setter für nen boolean wert.
     
  6. nillehammer
    nillehammer Guest
    Bei Booleans bietet es sich an, statt der setter-Syntax einfac zwei Methoden enable und disable zu bauen. Etwa so:
    Code (Java):

    public class MyClas {

      private boolean myBoolean;

      /* Setter und Getter nach Bean-Konvention */
      public void setMyBoolean(final boolean theBoolean) {
        this.myBoolean = theBoolean;
      }

      public boolean getMyBoolean() {
        return this.myBoolean;
      }

      /* Bei booleans darf der "getter" auch mit "is" beginnen, also: */
      public boolean isMyBoolean() {
        return this.myBoolean;
      }

      /* Und nun die Schalter-Methoden */
      public void enableMyBoolean() {
         this.myBoolean = true;
      }

      public void disableMyBoolean() {
        this.myBoolean = false;
      }

      public void flipMyBoolean() {
        this.myBoolean = !this.myBoolean;
      }

    }
     
     
  7. bygones
    bygones Guest
    @nillehammer
    6 methoden fuer ein boolean ?!

    mhm

    Code (Java):

    public class MyClas {
      private boolean myBoolean;

      public boolean isMyBoolean() {
        return this.myBoolean;
      }

      public void setMyBoolean(final boolean theBoolean) {
        this.myBoolean = theBoolean;
      }
     
    mehr brauchts nicht.

    selbst bei flipMyBoolean bin ich nicht so ueberzeugt, da der aufrufer keine ahnung hat in welchen Zustand sich myBoolean befindet und es gewiss zu code ala
    [code=Java]
    if (myClass.isMyBoolean()) {
    myClass.flipMyBoolean();
    }
    [/code]
    kommt (bzw mit der negation).[/code]
     
  8. Gast2
    Gast2 Guest
    Ja, wenns zu so nem Code kommt, dann ist nen normaler setter sicherlich die bessere Wahl ;)
    Es kommt halt wie gesagt drauf an in welchem Kontext man den boolean nutzt. Du hast aber recht, in der Regel tuts nen gewöhnlicher setter.
     
  9. nillehammer
    nillehammer Guest
    propra hat nach möglichen Alternativen zu der normalen Setter-Syntax gefragt. Die hab ich genannt. Was er davon benutzt (sicher nicht alles), kann er sich dann selbst aussuchen. Und flips hab ich im Zusammenhang mit GUI-Elementen, die man auf- und zuklappen kann schon selbst oft benutzt. Da ist es mir nämlich egal, wie der aktuelle Zustand ist, ich will einfach, dass er sich ändert.
     
  10. HimBromBeere
    HimBromBeere Aktives Mitglied
    Warum kümmerst du dich um die Verwaltung des Wertes (gesetzt/ nicht gesetzt) nicht in der set-Funktionen deines Objektes?
    Wenn du z.B. eine Variable
    Code (Text):
    int groesse
    hast und eine
    Code (Text):
    boolean bSet = false
    dann schreibst du
    Code (Java):

    void setGroesse(int groesse) {
        this.groesse = groesse;
        this.bSet = true;
    }

    boolean isSet() {return this.bSet;}
    void disable() {this.bSet = false;}
     
    wenn du dann in einer Auswahl eine andere Option auswählst, musst du nur mit diable() die aktuelle verwerfen...
     
  11. bygones
    bygones Guest
    er hat nicht nach Alternativen gefragt, sondern wie man es am besten loesen kann.

    Und das mit der GUI ist schon richtig, nur ist das auch nur dort und sollte auch nur dort bleiben
     
Die Seite wird geladen...

Gegenteil von Setter-Methoden - Ähnliche Themen

"Gegenteil" von %
"Gegenteil" von % im Forum Java Basics - Anfänger-Themen
Gegenteil einer Applet
Gegenteil einer Applet im Forum Java Basics - Anfänger-Themen
String - Gegenteil von Split?
String - Gegenteil von Split? im Forum Java Basics - Anfänger-Themen
Gegenteil von Equal
Gegenteil von Equal im Forum Java Basics - Anfänger-Themen
immer Setter-Methoden verwenden?
immer Setter-Methoden verwenden? im Forum Java Basics - Anfänger-Themen
Thema: Gegenteil von Setter-Methoden