[java] 부울 필드의 경우 getter / setter의 명명 규칙은 무엇입니까?

예 :

boolean isCurrent = false;

게터와 세터의 이름은 무엇입니까?



답변

당신이 가지고 있다고 가정

boolean active;

접근 자 방법은

public boolean isActive(){return this.active;}

public void setActive(boolean active){this.active = active;}

또한보십시오


답변

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

  1. is 부울 변수 및 메서드에는 접두사를 사용해야합니다.

    isSet, isVisible, isFinished, isFound,isOpen

이것은 Java 핵심 패키지에 대해 Sun에서 사용하는 부울 메소드 및 변수의 이름 지정 규칙입니다
. is 접두사를 사용하면 status 또는 flag와 같은 잘못된 부울 이름을 선택하는 일반적인 문제가 해결됩니다. isStatus 또는 isFlag는 적합하지 않으며 프로그래머는보다 의미있는 이름을 선택해야합니다.

부울 변수의 세터 메소드에는 다음과 같이 접 두부가 설정되어 있어야합니다.

void setFound(boolean isFound);

일부 상황에서 더 적합한 is 접두사에 대한 몇 가지 대안이 있습니다. 이들은 접두사를 가지고 있고, 할 수 있고,해야합니다.

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

답변

이라는 필드 isCurrent의 올바른 getter / setter 이름은 setCurrent()/ isCurrent()(적어도 Eclipse가 생각하는 것입니다)이며 매우 혼란스럽고 주요 문제로 다시 추적 할 수 있습니다.

isCurrent먼저 필드를 호출하면 안됩니다 . Is 는 동사이며 동사는 객체의 상태를 나타내는 데 부적합합니다. 대신 형용사를 사용하면 갑자기 getter / setter 이름이 더 의미가 있습니다.

private boolean current;

public boolean isCurrent(){
    return current;
}

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


답변

나는 그것이 될 것이라고 믿습니다 .

void setCurrent(boolean current)
boolean isCurrent()


답변

이 답변을 개정 할 때가 되었을까요? 개인적으로 나는 투표setActive()unsetActive()(대안이 될 수있다 setUnActive(), notActive(), disable()“setActive”이후 등 상황에 따라) 의미 당신은 당신이하지 않는 모든 시간에서 활성화합니다. “setActive”라고 말하는 것은 직관적이지만 실제로는 활성 상태를 제거합니다.

또 다른 문제는 CQRS 방식으로 구체적으로 SetActive 이벤트를 수신 할 수 없으며, ‘setActiveEvent’를 수신하고 해당 리스너 내부에서 실제로 활성으로 설정되었는지 여부를 판별해야한다는 것입니다. 또는 전화 할 때 어떤 이벤트를 호출할지 결정 setActive()하지만 문제 분리 원칙에 위배됩니다.

이에 대한 좋은 글은 Martin Fowler의 FlagArgument 기사입니다 : http://martinfowler.com/bliki/FlagArgument.html

그러나 나는 PHP 배경에서 왔으며이 추세가 점점 더 많이 채택되고 있음을 알 수 있습니다. 이것이 Java 개발에 얼마나 많은 영향을 미치는지 확실하지 않습니다.


답변

private boolean current;

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

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


답변

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

부울의 경우 다음을 사용할 수도 있습니다

public boolean isCurrent()