Java-Name für Getter, der die boolesche Klasse gemäß der Namenskonvention zurückgibt

8

Ich habe bemerkt, dass für Getter, die Boolean (nicht boolean !) zurückgeben, netbeans Getter mit "get" -Präfix erzeugt. Zum Beispiel:

%Vor%

Ist das falsch (gemäß Namenskonvention)? Oder "ist" Präfix nur für primitiven Typ?

    
CupawnTae 11.02.2015, 08:52
quelle

5 Antworten

4

Hier ist ein Zitat aus dem eigentlichen JavaBeans-Spezifikationsdokument :

  

8.3.2 Boolesche Eigenschaften

     

Für boolesche Eigenschaften erlauben wir außerdem, dass eine Getter-Methode mit dem Muster übereinstimmt:

     

public boolean is<PropertyName>();

     

Diese is<PropertyName> -Methode kann anstelle einer get<PropertyName> -Methode bereitgestellt werden, oder sie kann zusätzlich zu einer get<PropertyName> -Methode bereitgestellt werden. In beiden Fällen, wenn die Methode is<PropertyName> für eine boolesche Eigenschaft vorhanden ist, verwenden wir die Methode is<PropertyName> , um den Eigenschaftswert zu lesen.

Beachten Sie, dass dies für die Werte boolean und nicht Boolean gilt. Beachten Sie auch, dass is eine zulässige Alternative zu get und get ist immer angemessen ist.

    
Marko Topolnik 11.02.2015, 09:16
quelle
6

Netbeans ist hier nicht falsch - für Boolean Objekt Eigenschaften get ist korrekt. Zum einen könnte der Eigenschaftswert null sein, in diesem Fall wäre is nicht sinnvoll.

Die Javabeans-Spezifikation erlaubt is für Geben Sie boolean als Sonderfall ein, und erwähnt nicht Boolean . Zu vermuten, dass dieser Sonderfall auf Boolean -Objekte ausgedehnt wird, wäre ungültig.

    
CupawnTae 11.02.2015 08:54
quelle
1

Es hängt davon ab, ob die Klasse, die die Methode enthält, als JavaBean behandelt werden soll oder nicht.

Wenn Sie beabsichtigen, dass es sich um eine JavaBean handelt, dann ist Marko Topolniks Antwort zutreffend.

Sonst gibt es kein richtig oder falsch. Ob get oder is (oder etwas anderes) verwendet werden soll, hängt vom Vertrag und Zweck der Methode ab. Erans erster Kommentar ist genau richtig:

  

Hier gibt es kein richtig oder falsch. Ich denke isMain oder hasMain oder unterstütztMain (depending auf welche Hauptmittel) sind beschreibender. Ich denke nicht, dass es einen Unterschied machen sollte, ob es nun boolesch oder boolesch ist.

Sie fragen, was die Konvention ist, und ich würde sagen, dass die Konvention darin besteht, die Methode so beschreibend und semantisch genau wie möglich zu benennen.

Um auf näher einzugehen ist vs get :

  • Wenn die Methode als allgemeiner Accessor für eine Eigenschaft "capital_B Boolean " gedacht ist, die den Wert null annehmen lässt, ist es sinnvoller, get zu verwenden.

  • Wenn die Methode den Status eines ansonsten internen (wie in diesem Fall private ) Nicht-Null-Flags angeben soll, würde ich argumentieren, dass is ein passendes Präfix wäre. (Obwohl ich wahrscheinlich boolean als Rückgabewert verwenden würde, es sei denn, es gab einen häufigen Anwendungsfall für zB isMain().hashCode() oder etwas ähnliches.)

aioobe 11.02.2015 09:00
quelle
0

Am Boolean Objekt können Sie viele Methoden anwenden: toString , equals , valueOf ..

Es gibt keine vollständige Antwort auf Ihre Frage, es hängt wirklich von der Verwendung ab und wer die Methode aufruft. Es macht Sinn zu haben:

%Vor%

Aber wenn Ihre Logik nicht sicherstellt, dass main den Wert null haben kann, dann ist get ein gutes Präfix.

    
Maroun 11.02.2015 09:00
quelle
0

Es ist richtig. Boolean ist eine Wrapper-Klasse des primitiven Datentyps boolean. So Boolean wird Objekt zurückgeben. Gleiches get wird für Objekt auch wie primitiver Datentyp verwendet.

    
SabaRish 11.02.2015 09:01
quelle

Tags und Links