부울 객체를 Java 문자열로 변환하는 최선의 방법
부울을 문자열 형식으로 변환하려고 합니다...
Boolean b = true;
String str = String.valueOf(b);
또는
Boolean b = true;
String str = Boolean.toString(b);
위 중 어떤 것이 더 효율적일까요?
성능 차이는 크지 않을 것 같지만 첫 번째 방법이 더 좋습니다.
를 가지고 있는 경우Boolean
언급,Boolean.toString(boolean)
던지다NullPointerException
만약 당신이 언급한다면null
. 참조가 개봉되면boolean
메서드로 전달되기 전에.
하는 동안에,String.valueOf()
method는 소스코드가 나타내듯이 명시적인가?null
체크:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
다음 코드를 테스트합니다.
Boolean b = null;
System.out.println(String.valueOf(b)); // Prints null
System.out.println(Boolean.toString(b)); // Throws NPE
원시 부울의 경우 차이가 없습니다.
값이 다음 값이 아니라고 확신하는 경우null
다음 세 번째 옵션을 사용할 수 있습니다.
String str3 = b.toString();
그리고 그 코드는
public String toString() {
return value ? "true" : "false";
}
null-safe 사용을 원하는 경우String.valueOf(b)
어떤 코드가
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
보시는 바와 같이 먼저 테스트합니다.null
이후 호출toString()
메서드를 지정합니다.
부르기Boolean.toString(b)
호출하다
public static String toString(boolean b) {
return b ? "true" : "false";
}
보다 조금 느리다b.toString()
JVM이 먼저 개봉해야 하기 때문에 Boolean
로.boolean
그것은 의 논거로서 통용될 것이다.Boolean.toString(...)
,하는 동안에b.toString()
재사용private boolean value
에 참가하다.Boolean
상태를 유지하는 객체.
public class Sandbox {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Boolean b = true;
boolean z = false;
echo (b);
echo (z);
echo ("Value of b= " + b +"\nValue of z= " + z);
}
public static void echo(Object obj){
System.out.println(obj);
}
}
Result -------------- true false Value of b= true Value of z= false --------------
이것이 "True" 또는 "TRUE"가 아닌 "True" 값을 일정하게 얻기 위한 목적이라면 다음을 사용할 수 있습니다.
Boolean.TRUE.toString();
Boolean.FALSE.toString();
디버깅 등의 빠른 방법을 찾고 있는 경우 빈 문자열을 부울에 연결하기만 하면 됩니다.
System.out.println(b+"");
다만, 생산용의 경우는 다른 방법을 사용하는 것을 강하게 추천합니다.이것은 디버깅에 도움이 되는 간단한 퀵솔루션입니다
"효율적"이라는 말이 무슨 뜻인지에 따라 다릅니다.퍼포먼스 면에서는 양쪽 버전이 같은 바이트 코드와 동일합니다.
$ ./javap.exe -c java.lang.String | grep -A 10 "valueOf(boolean)"
public static java.lang.String valueOf(boolean);
Code:
0: iload_0
1: ifeq 9
4: ldc #14 // String true
6: goto 11
9: ldc #10 // String false
11: areturn
$ ./javap.exe -c java.lang.Boolean | grep -A 10 "toString(boolean)"
public static java.lang.String toString(boolean);
Code:
0: iload_0
1: ifeq 9
4: ldc #3 // String true
6: goto 11
9: ldc #2 // String false
11: areturn
두 가지 방법이 모두 구현되어 있는 경우 동일한 것으로 나타납니다.
String.valueOf(b)
public static String valueOf(boolean b) {
return b ? "true" : "false";
}
Boolean.toString(b)
public static String toString(boolean b) {
return b ? "true" : "false";
}
따라서 두 방법 모두 똑같이 효율적입니다.
언급URL : https://stackoverflow.com/questions/18833054/best-approach-to-converting-boolean-object-to-string-in-java
'programing' 카테고리의 다른 글
+0과 -0이 같습니까? (0) | 2022.09.05 |
---|---|
파일이 존재하는 경우 File.exists()가 false를 반환합니다. (0) | 2022.09.05 |
Mysql 케이스 문이 작동하지 않습니다. (0) | 2022.09.05 |
PHP 오류 메시지 "알림:정의되지 않은 상수" 평균을 사용합니까? (0) | 2022.09.05 |
vuex, vuejs 앱의 변환에서만 상태를 변경해야 하는 이유는 무엇입니까? (0) | 2022.09.05 |