Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java hashCode
- github action codedeploy
- 코드포스
- java 비동기처리
- list remove
- github deploy
- Java lombok
- github action
- AliasFor
- image slider
- Java
- javascript image slider
- java stream api
- Spring Aspect
- hashcode override
- github ec2 deploy
- github CI/CD
- github CI
- java CompletableFuture
- Java Wrapper Class
- AWS Codedeploy
- Github action deploy
- equals
- equals override
- SpringBootApplication
- lombok Builder
- vanilla js image slider
- kotest
- c++ 빌드
- stream groupingby
Archives
- Today
- Total
기록창고
String.equals() 본문
문자열을 비교할 때는 이렇게 사용했다.
String str = "Something";
if(str.equalsIgnoreCase("something)) {
System.out.println("str is same");
}
그치만 만약 str이 null 이라면..?
위에서는 String str = "Something"
이렇게 명시적으로 선언해줬기 때문에 바로 알 수 있지만
public String checkSameStr(String str) {
if(str.equalsIgnoreCase("Something)) {
/* logic */
} else {
}
}
위와 같은 함수를 만들어서 사용할 수 있다.
그렇지만 함수 인자로 받은 str 가 null 이 아니라는 보장이 없다.
그래서 str이 null인 상태에서 실행하면 NullPointerException error 가 발생한다...
public String checkSameStr(String str) {
if("Something".equalsIgnoreCase(str) {
/* logic */
}
}
그래서 if 문에 있는 equals을 순서를 바꿔서 저렇게 할 경우 NullPointerException 이 발생하지않고
else 문으로 넘어간다.
첫번째처럼 작성했을 때의 장점은 ....
str이 아무것도 없이 null 인거 자체가 예상하지 못한 상황이라서 버그일 수도 있다.
그래서 발견할 수 있는 것이다! 두번째처럼 작성했으면 else문으로 넘어가 그냥 진행된다.
두번째의 장점은 null이 들어오더라도 알아서 대처한다는 것
null 까지 포함한 인자가 들어올줄 알고 작성했다면 두번째가 조금 더 유연하다는 것.
그래서 잘모르겠다...
괜히 두번째처럼 썼다가 null이 올 수 있는 상황을 모르고 지나치치않을까 라는 생각이 더 들긴한다..
헿
'JAVA' 카테고리의 다른 글
CompletableFuture 을 이용한 비동기 요청 (0) | 2020.06.09 |
---|---|
기본형과 래퍼 클래스(Wrapper Class) (0) | 2020.02.18 |
Collectors GroupingBy (0) | 2020.01.16 |
JAVA List for 문으로 remove하기 (0) | 2020.01.05 |
equals() override (0) | 2019.12.28 |
Comments