Java에서 부울 변수를 전환하는 가장 깨끗한 방법?
단순한 if-else보다 Java에서 부울을 부정하는 더 좋은 방법이 있을까요?
if (theBoolean) {
theBoolean = false;
} else {
theBoolean = true;
}
theBoolean = !theBoolean;
theBoolean ^= true;
변수가 4글자 이상일 경우 키 입력 감소
편집: 코드는 Google 검색어로 사용할 때 유용한 결과를 반환하는 경향이 있습니다.위의 코드는 그렇지 않습니다.필요한 사용자에게는 여기에 설명된 바와 같이 비트 단위 XOR입니다.
몇 개 있다
(대부분의 사람들에게) '명백한' 방법
theBoolean = !theBoolean;
가장 짧은 방법(대부분)
theBoolean ^= true;
가장 시각적인 방법(가장 불확실한 방법)
theBoolean = theBoolean ? false : true;
추가: 메서드 호출에서 전환 및 사용
theMethod( theBoolean ^= true );
할당 연산자는 항상 할당된 값을 반환하므로 비트 연산자를 통해 값이 전환되고 메서드 호출에서 사용되는 새로 할당된 값이 반환됩니다.
이 답변은 "자바 반전 부울 함수"를 검색할 때 표시됩니다.다음 예에서는 특정 정적 분석 도구가 분기 논리로 인해 빌드에 실패하는 것을 방지합니다.이 기능은 부울을 반전할 필요가 있고 포괄적인 유닛 테스트를 구축하지 않은 경우에 유용합니다.
Boolean.valueOf(aBool).equals(false)
또는 다음 중 하나를 선택합니다.
Boolean.FALSE.equals(aBool)
또는
Boolean.FALSE::equals
Boolean NULL 값을 사용하여 false로 간주할 경우 다음 절차를 수행합니다.
static public boolean toggle(Boolean aBoolean) {
if (aBoolean == null) return true;
else return !aBoolean;
}
Boolean NULL 값을 전달하지 않을 경우 다음을 수행합니다.
static public boolean toggle(boolean aBoolean) {
return !aBoolean;
}
메서드 시그니처의 의도를 나타내며 ! 연산자에 비해 읽기 쉽고 디버깅도 용이하기 때문에 가장 깨끗한 것입니다.
사용.
boolean bTrue = true
boolean bFalse = false
boolean bNull = null
toggle(bTrue) // == false
toggle(bFalse) // == true
toggle(bNull) // == true
물론 Groovy 또는 확장 메서드를 허용하는 언어를 사용하는 경우 확장을 등록하고 다음을 수행할 수 있습니다.
Boolean b = false
b = b.toggle() // == true
학급.BooleanUtils
는 부울 부정을 지원합니다.이 클래스는 commons-lang: commons-lang에서 찾을 수 있습니다.
BooleanUtils.negate(theBoolean)
특별히 전문적인 일을 하고 있지 않다면 언제든지 Util 클래스를 사용할 수 있습니다.예: 클래스의 프로젝트에서 사용되는 클래스입니다.
public class Util {
public Util() {}
public boolean flip(boolean bool) { return !bool; }
public void sop(String str) { System.out.println(str); }
}
Util 객체를 생성하기만 하면 됩니다.Util u = new Util();
뭔가 돌려줄 게 있어서System.out.println( u.flip(bool) );
같은 것을 반복해서 사용하게 될 경우에는 메서드를 사용합니다.특히 프로젝트 전체에 걸쳐 있는 경우에는 Util 클래스를 만듭니다.그러나 업계 표준이 무엇인지 알 수 없습니다.(경험이 풍부한 프로그래머가 자유롭게 정정해 주세요.)
아쉽게도 숫자가 증가/감소하는 것과 같은 짧은 형식은 없습니다.
i++;
다음과 같이 부울, dmth를 반전시키는 유사한 짧은 식을 사용하고 싶습니다.
비어있습니다!;
이전:
boolean result = isresult();
if (result) {
result = false;
} else {
result = true;
}
그 후:
boolean result = isresult();
result ^= true;
언급URL : https://stackoverflow.com/questions/224311/cleanest-way-to-toggle-a-boolean-variable-in-java
'programing' 카테고리의 다른 글
더블을 32비트 int로 반올림하는 빠른 방법 (0) | 2022.07.24 |
---|---|
C의 입력 버퍼를 클리어하려면 어떻게 해야 합니까? (0) | 2022.07.24 |
Null Pointer 회피Java 예외 (0) | 2022.07.24 |
Typescript를 사용하여 Vue3 스토어 액세스 (0) | 2022.07.24 |
v-for를 사용하는 요소에서 v-if를 사용하지 않는 방법 (0) | 2022.07.23 |