Por exemplo.
boolean isCurrent = false;
O que você chama de getter e setter?
Por exemplo.
boolean isCurrent = false;
O que você chama de getter e setter?
Respostas:
Suponha que você tenha
boolean active;
O método de acessadores seria
public boolean isActive(){return this.active;}
public void setActive(boolean active){this.active = active;}
Veja também
hasCustomName
: Agora, o que devo nomear para seus métodos getter e setter ? É setHasCustomName[setter]
e hasCustomName[getter]
bom?
public boolean isCustomerName(){return this.customerName;} public void setCustomerName(boolean customerName){this.customerName= customerName;}
http://geosoft.no/development/javastyle.html#Specific
is
O prefixo deve ser usado para variáveis e métodos booleanos.
isSet
,isVisible
,isFinished
,isFound
,isOpen
Esta é a convenção de nomenclatura para métodos e variáveis booleanos usados pela Sun para os pacotes principais do Java. O uso do prefixo is resolve um problema comum de escolha de nomes booleanos inválidos, como status ou sinalizador. isStatus ou isFlag simplesmente não se encaixa, e o programador é forçado a escolher nomes mais significativos.
Os métodos setter para variáveis booleanas devem ter o prefixo definido como em:
void setFound(boolean isFound);
Existem algumas alternativas ao prefixo is que se encaixam melhor em algumas situações. Estes são prefixos has, can e should:
boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
hasData
, como seria o setter? Certamente, setData(bool hasData)
parece-me terrivelmente errado ...
has
, can
, should
prefixos não são parte da especificação. Referência JavaBeans Especificação 1,01 secção 8.3.
boolean isIsCurrent(){...}
caso contrário a estrutura usada para desserializar o objeto, estava reclamando getter not found for property isCurrent
.
Para um campo chamado isCurrent
, a nomeação correta de getter / setter é setCurrent()
/ isCurrent()
(pelo menos é o que o Eclipse pensa), que é altamente confuso e pode ser rastreado até o problema principal:
Seu campo não deve ser chamado isCurrent
em primeiro lugar. Is é um verbo e os verbos são inapropriados para representar o estado de um objeto. Em vez disso, use um adjetivo e, de repente, seus nomes de getter / setter farão mais sentido:
private boolean current;
public boolean isCurrent(){
return current;
}
public void setCurrent(final boolean current){
this.current = current;
}
get
prefixo ao recuperar um Boolean
vs is
para umboolean
Eu acredito que seria:
void setCurrent(boolean current)
boolean isCurrent()
Talvez seja a hora de começar a revisar esta resposta? Pessoalmente, eu votaria para setActive()
e unsetActive()
(alternativas podem ser setUnActive()
, notActive()
, disable()
, etc. dependendo do contexto) uma vez que "setActive" implica que você ativá-lo em todos os momentos, o que você não faz. É meio contra-intuitivo dizer "setActive", mas remover o estado ativo.
Outro problema é que você não pode ouvir especificamente um evento SetActive de uma maneira CQRS, seria necessário ouvir um 'setActiveEvent' e determinar dentro do ouvinte se o ouvinte está realmente ativo ou não. Ou, é claro, determine qual evento chamar ao chamar, setActive()
mas isso vai contra o princípio da separação de preocupações.
Uma boa leitura sobre isso é o artigo do FlagArgument de Martin Fowler: http://martinfowler.com/bliki/FlagArgument.html
No entanto, venho de um histórico em PHP e vejo essa tendência sendo cada vez mais adotada. Não tenho certeza do quanto isso vive com o desenvolvimento Java.
private boolean current;
public void setCurrent(boolean current){
this.current=current;
}
public boolean hasCurrent(){
return this.current;
}
has
usado para BO ou um serviço desse tipo com algum processamento, enquanto para POJO é is
. e adicione alguma descrição sobre sua resposta.
Setter: public void setCurrent(boolean val)
Getter: public boolean getCurrent()
Para booleanos, você também pode usar
public boolean isCurrent()
Como levantador, que tal:
// setter
public void beCurrent(boolean X) {
this.isCurrent = X;
}
ou
// setter
public void makeCurrent(boolean X) {
this.isCurrent = X;
}
Não sei se esses nomes fazem sentido para os falantes nativos de inglês.