유저 검색을 닉네임으로 하는 부분이 갑자기 고장났다
하나하나 코드를 찾아보며 따져보니
for(User searchUser : byNicknameContaining){
boolean isFriend = false;
for(UserFriend userFriend : userFriendByUser){
if(userFriend.getFriend().getUserNo().equals(searchUser.getUserNo())){
System.out.println(123);
UserSearchResultDTO searchResultDTO = new UserSearchResultDTO(searchUser, userFriend);
System.out.println(searchResultDTO.toString());
result.add(searchResultDTO);
isFriend = true;
break;
}
}
if(!isFriend){
UserSearchResultDTO searchResultDTO = new UserSearchResultDTO();
searchResultDTO.createSearchResultDTO(searchUser);
result.add(searchResultDTO);
}
}
System.out.println(result);
return result;
if(userFriend.getFriend().getUserNo() == searchUser.getUserNo()){
이 부분이 문제였다.
분명 UserNo는 Long값인데? 왜 ==은 안되고
.equals로 비교를 해야 찾는 거지?…
if(userFriend.getFriend().getUserNo().equals(searchUser.getUserNo())){
일단 이렇게 하니깐 찾아졌다.
와 이유를 알았다.
UserNo는 Long 타입인데 Long타입은 Wrapper 클래스이다.
long은 순수 자료형이다.
Long 타입의 경우
127 == 127은 되지만