문제
간단한 if-else보다 Java에서 부울을 부정하는 더 좋은 방법이 있습니까?
if (theBoolean) {
theBoolean = false;
} else {
theBoolean = true;
}
해결책
theBoolean = !theBoolean;
다른 팁
theBoolean ^= true;
변수가 4 글자보다 길면 키 스트로크가 적습니다.
몇 가지가 있습니다
"명백한"방법 (대부분의 사람들을 위해)
theBoolean = !theBoolean;
"가장 짧은"방법 (대부분)
theBoolean ^= true;
"가장 시각적"방법 (가장 불확실하게)
theBoolean = theBoolean ? false : true;
추가 : 메소드 호출에서 토글하고 사용합니다
theMethod( theBoolean ^= true );
할당 연산자는 항상 할당 된 내용을 반환하므로 비트 시대 연산자를 통해 값을 전환 한 다음 메소드 호출에 사용될 새로 할당 된 값을 반환합니다.
부울 null 값을 사용하고 거짓으로 생각하면 다음을 시도하십시오.
static public boolean toggle(Boolean aBoolean) {
if (aBoolean == null) return true;
else return !aBoolean;
}
부울 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
물론 사용하는 경우 그루비 또는 확장 방법을 허용하는 언어는 확장을 등록하고 간단히 할 수 있습니다.
Boolean b = false
b = b.toggle() // == true
특히 전문적인 일을하지 않는다면 항상 Util 클래스를 사용할 수 있습니다. Ex, 수업 프로젝트의 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 클래스를 만드십시오. 그러나 산업 표준이 무엇인지 Dunno. (숙련 된 프로그래머는 저를 자유롭게 수정하십시오)
전에:
boolean result = isresult();
if (result) {
result = false;
} else {
result = true;
}
후에:
boolean result = isresult();
result ^= true;
제휴하지 않습니다 StackOverflow