Для логического поля, каково соглашение об именах для его получателя/сеттера?

Eg.

boolean isCurrent = false;

Как вы называете его получателем и сеттер?

Ответ 2

http://geosoft.no/development/javastyle.html#Specific

  1. Префикс is должен использоваться для логических переменных и методов.

    isSet, isVisible, isFinished, isFound, isOpen

Это соглашение об именах для логических методов и переменных, используемых Sun для базовых пакетов Java. Использование префикса is решает общую проблему выбора плохих логических имен, таких как status или flag. isStatus или isFlag просто не подходят, и программист вынужден выбирать более значимые имена.

Методы установки для логических переменных должны иметь префикс установки как в:

void setFound(boolean isFound);

Существует несколько альтернатив префиксу is, который лучше подходит в некоторых ситуациях. Эти префиксы имеют, могут и должны:

boolean hasLicense(); 
boolean canEvaluate(); 
boolean shouldAbort = false;

Ответ 3

Для поля с именем isCurrent правильное присвоение геттера/сеттера равно setCurrent()/isCurrent() (по крайней мере, что думает Eclipse), что очень сбивает с толку и может быть прослежено до основной проблемы:

В первую очередь ваше поле не должно называться isCurrent.. Является ли глагол и глаголы неуместными для представления состояния объекта. Вместо этого используйте прилагательное, и ваши имена получателя/сеттера будут иметь смысл:

private boolean current;

public boolean isCurrent(){
    return current;
}

public void setCurrent(final boolean current){
    this.current = current;
}

Ответ 4

I верить, было бы:

void setCurrent(boolean current)
boolean isCurrent()

Ответ 5

Возможно, пришло время начать пересмотр этого ответа? Лично я проголосовал бы за setActive() и unsetActive() (альтернативы могут быть setUnActive(), notActive(), disable() и т.д. В зависимости от контекста), поскольку "setActive" подразумевает, что вы активируете его всегда, т. Это своего рода счетчик, интуитивный, чтобы сказать "setActive", но фактически удалить активное состояние.

Другая проблема заключается в том, что вы не можете прослушивать специфическое событие SetActive в режиме CQRS, вам нужно будет прослушать "setActiveEvent" и определить внутри этого прослушивателя, на самом деле он активен или нет. Или, конечно, определить, какое событие вызывать при вызове setActive(), но затем идет против принципа "Разделение проблем".

Хорошо читать об этом - статья FlagArgument Мартина Фаулера: http://martinfowler.com/bliki/FlagArgument.html

Однако я исхожу из фона PHP и вижу, что эта тенденция все больше принимается. Не уверен, насколько это связано с развитием Java.

Ответ 6

private boolean current;

public void setCurrent(boolean current){
    this.current=current;
}

public boolean hasCurrent(){
    return this.current;
}

Ответ 7

Как сеттер, как насчет:

// setter
public void beCurrent(boolean X) {
    this.isCurrent = X;
}

или же

// setter
public void makeCurrent(boolean X) {
    this.isCurrent = X;
}

Я не уверен, имеют ли эти названия смысл для носителей английского языка.

Ответ 8

Setter: public void setCurrent(boolean val)
Getter: public boolean getCurrent()

Для булевых вы также можете использовать

public boolean isCurrent()

Ответ 9

Только во избежание путаницы; Я рекомендую использовать

// Setter method for isCurrent

public void setIsCurrent(boolean isCurrent) {
    this.isCurrent = isCurrent;
}

// Getter method for isCurrent

public boolean getIsCurrent() {
    return isCurrent;
}