Per esempio.
boolean isCurrent = false;
Come si chiama getter e setter?
Per esempio.
boolean isCurrent = false;
Come si chiama getter e setter?
Risposte:
Supponi di avere
boolean active;
Metodo di accesso sarebbe
public boolean isActive(){return this.active;}
public void setActive(boolean active){this.active = active;}
Guarda anche
hasCustomName
, Ora come dovrei chiamare i suoi metodi getter e setter ? E ' setHasCustomName[setter]
e hasCustomName[getter]
buona?
public boolean isCustomerName(){return this.customerName;} public void setCustomerName(boolean customerName){this.customerName= customerName;}
http://geosoft.no/development/javastyle.html#Specific
is
il prefisso dovrebbe essere usato per variabili e metodi booleani.
isSet
,isVisible
,isFinished
,isFound
,isOpen
Questa è la convenzione di denominazione per i metodi e le variabili booleani utilizzati da Sun per i pacchetti core Java. L'uso del prefisso is risolve un problema comune nella scelta di nomi booleani errati come status o flag. isStatus o isFlag semplicemente non si adattano e il programmatore è costretto a scegliere nomi più significativi.
I metodi setter per le variabili booleane devono aver impostato il prefisso come in:
void setFound(boolean isFound);
Esistono alcune alternative al prefisso is che si adatta meglio in alcune situazioni. Questi sono prefissi, possono e dovrebbero:
boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
hasData
, come sarebbe il setter? Sicuramente, mi setData(bool hasData)
sembra terribilmente sbagliato ...
has
, can
, should
prefissi non sono parte delle specifiche. Riferimento Specifica JavaBeans 1.01 sezione 8.3.
boolean isIsCurrent(){...}
altrimenti la struttura utilizzata per deserializzare l'oggetto, si lamentava getter not found for property isCurrent
.
Per un campo denominato isCurrent
, la corretta denominazione getter / setter è setCurrent()
/ isCurrent()
(almeno è quello che pensa Eclipse), che è molto confuso e può essere ricondotto al problema principale:
Il tuo campo non dovrebbe essere chiamato isCurrent
in primo luogo. È un verbo e i verbi sono inappropriati per rappresentare lo stato di un oggetto. Usa invece un aggettivo e improvvisamente i nomi dei tuoi getter / setter avranno più senso:
private boolean current;
public boolean isCurrent(){
return current;
}
public void setCurrent(final boolean current){
this.current = current;
}
get
prefisso quando recupera un Boolean
vs is
per unboolean
Io credo che sarebbe stato:
void setCurrent(boolean current)
boolean isCurrent()
Forse è tempo di iniziare a rivedere questa risposta? Personalmente vorrei votare per setActive()
e unsetActive()
(alternative possono essere setUnActive()
, notActive()
, disable()
, ecc a seconda del contesto) dal momento che "setactive" implica che si attiva in ogni momento, che non si fanno. È abbastanza intuitivo dire "setActive" ma in realtà rimuovere lo stato attivo.
Un altro problema è che non è possibile ascoltare in modo specifico un evento SetActive in modo CQRS, è necessario ascoltare un 'setActiveEvent' e determinare all'interno di quel listener se è stato effettivamente impostato o meno. O, naturalmente, determinare quale evento chiamare quando si chiama, setActive()
ma che poi va contro il principio di separazione delle preoccupazioni.
Una buona lettura su questo è l'articolo FlagArgument di Martin Fowler: http://martinfowler.com/bliki/FlagArgument.html
Tuttavia, vengo da un background PHP e vedo che questa tendenza viene adottata sempre di più. Non sono sicuro di quanto viva con lo sviluppo Java.
private boolean current;
public void setCurrent(boolean current){
this.current=current;
}
public boolean hasCurrent(){
return this.current;
}
has
usato per BO o un tale servizio con qualche elaborazione mentre per POJO lo è is
. e aggiungi una descrizione della tua risposta.
Setter: public void setCurrent(boolean val)
Getter: public boolean getCurrent()
Per i booleani puoi anche usare
public boolean isCurrent()
Come setter, che ne dici di:
// setter
public void beCurrent(boolean X) {
this.isCurrent = X;
}
o
// setter
public void makeCurrent(boolean X) {
this.isCurrent = X;
}
Non sono sicuro che questi nomi abbiano senso per i madrelingua inglesi.