Java

[Java] Boolean.valueOf()와 Boolean.parseBoolean()의 차이

메바동 2022. 7. 20. 14:06
728x90
boolean boolValue;

this.boolValue = Boolean.valueOf(boolValueStr);

 

위 코드를 사용하자

 

Redundant boxing inside 'Boolean.valueOf(boolValueStr)'

 

IntelliJ에서는 불필요한 박싱이라며 Boolean.parseBoolean(boolValueStr);으로 수정하도록 권하고 있었다.

 

Boolean.valueOf(String)과 Boolean.parseBoolean(String)은 모두 대소문자 구분 없이 "true", "True", "TRUE" 등의 String일 경우 true를 반환하고, 그 외의 경우 false를 반환하는 함수이다.

 

다만 차이점은 valueOf()는 래퍼 클래스인 java.lang.Boolean을 반환하고, parseBoolean()은 원시 타입 형태로 반환하게 된다.

 

IntelliJ에서 위와 같은 메시지를 띄운 이유는 원시 타입인 변수에 valueOf()를 사용할 경우 불필요한 박싱과 언박싱이 발생하기 때문에 원시 타입으로 반환하는 parseBoolean()을 사용하라고 한 것이다.

728x90