StringUtils.equals를 사용하는 이유

강우엉·2023년 12월 19일
0

study

목록 보기
35/44

StringUtils.equals() 메서드를 사용하면 두개의 문자열을 비교하여 동일한 문자면 true를 다른 문자면 false를 반환한다. 또한 중요한 특징은 null은 예외없이 처리된다. 즉 값이 null일 경우 npe가 발생하지않고 null을 반환한다.

String str1 = "Hello";
String str2 = "Hello";
System.out.println(StringUtils.equals(str1, str2); //true 반환

String str3 = "Hello!";
String str4 = "Hello~!";
System.out.println(StringUtils.equals(str3, str4); //false 반환

System.out.println(StringUtils.equals(null, null); //null도 비교 가능

Java String 클래스 자체적으로 지원하는 equals() 메서드도 있다.
그러나 만약 변수애 null값이 들어간다면 NullPointerException이 발생한다.
따라서 StringUtils.equals() 사용하는것이 안전하다.

String str1 = null;
String str2 = "Hello~!";

//String 자체 equals() 사용 시 NullPointerException 발생
str1.equals(str2)

//StringUtils.equals() 사용 시 정상 처리
StringUtils.equals(str1, str2);

프로젝트에 적용시켜보자.


        if (savedCode != null && savedCode.equals(verificationCode)) {
            redisTemplate.delete(key);
        } else {
            throw new SmRequestException(ReturnCode.VERIFICATIONCODE_NOT_VALID);
        }

해당 코드를 StringUtils.equals()로 리팩토링 해보자.

먼저 build.gradle에 의존관계추가

	implementation 'org.apache.commons:commons-lang3:3.12.0'

리팩토링 후

 		if (StringUtils.equals(savedCode, verificationCode)) {
            redisTemplate.delete(key);
        } else {
            throw new SmRequestException(ReturnCode.VERIFICATIONCODE_NOT_VALID);
        }
profile
우엉이의 코딩 성장일기💻

0개의 댓글