본문 바로가기
자바

자바 클래스 타입 확인

by 멋진 개구리 2023. 9. 4.
반응형

일 하다가 로직을 짜는 도중 회원 번호와, 작성글의 회원번호를 매칭하는 도중에 삽질을 했다. 

로그 찍어보면 값은 같은데 자꾸 false를 타는 바람에 시간낭비를 한다. 

 

//틀린 코드

//세션에서 가져온 memIdx
LoginSessionInfo loginInfo = PageSession.getLoginSessionInfo();
loginInfo.getMemIdx();

//게시판 작성자의 memIdx를 가져오는 객체
Map<String, Object> info= recruitService.getRecruitInfo(param);
info.get("REG_IDX")

if(loginInfo.getMemIdx().equals(regIdx) || loginInfo.getNuriYn().equals("Y") ){

	//

}

여기서 중요했던게 맵객체를 사용하여 <String, Object>로 선언을 했더니, 숫자는 자동으로 Integer로 변환 해주더라..

그래서
타입을 확인해보니..

String ===Integer 이게 되겠냐고.....

LoginSessionInfo loginInfo = PageSession.getLoginSessionInfo();

log.info("loginInfo getMemIdx: "+loginInfo.getMemIdx());
 
Map<String, Object> info= recruitService.getRecruitInfo(param);
String regIdx =  info.get("REG_IDX").toString();

if(loginInfo.getMemIdx().equals(regIdx) || loginInfo.getNuriYn().equals("Y") ){
	//
}

이렇게 regIdx를 toString으로 변환해주어야 타입이 같아진다..

 

자바에서 타입이 무엇인지 확인할때는

log.info(" :::loginInfo_class_type::: "+loginInfo.getMemIdx().getClass().getName());

log.info(" :::REG_IDX_class_type::: "+info.get("REG_IDX").getClass().getName());

변수명.getClass().getName())

이렇게 확인해주면 된다.

연차는 쌓여가고 이런 실수를 하면 안대는데..

자바 너란녀석 .. 참 .. 꼼꼼한녀석..

반응형

댓글