깜놀하는 해므찌로

Java 객체 생성 시 주소 값을 저장하는 현상 해결 방법 본문

IT

Java 객체 생성 시 주소 값을 저장하는 현상 해결 방법

agnusdei1207 2022. 8. 11. 11:03
반응형
SMALL
/* tempVO */  
Et01VO et01VO = new Et01VO(); 
Ot01VO ot01VO = new Ot01VO(); 

/* DB 조회 및 결과  담기*/          
arrEt01VO[cnt] = (Et01VO)cmmnService.selectContents(searchVO, PROGRAM_ID + "." + eatLogSelect); 
if(null == arrEt01VO[cnt]){ // 조회 결과 null 일 경우 날짜 값 셋팅
    et01VO.setEatDate(searchVO.getSchEtc01());
    arrEt01VO[cnt] = et01VO;  
}  
arrOt01VO[cnt] = (Ot01VO)cmmnService.selectContents(searchVO, PROGRAM_ID + "." + overTimeSelect); 
if(null == arrOt01VO[cnt]){ // 조회 결과 null 일 경우 날짜 값 셋팅
    ot01VO.setStaDate(searchVO.getSchEtc01()); 
    arrOt01VO[cnt] = ot01VO;
}

문제 

1. 코드의 중복을 줄이기 위해 tempVO 부분이 필드 변수로써 Controller 상단에 명시 되어 있었다.

2. 필드로 명시된 이상 해당 값을 불러와서 조회된 값으로 수정하는 것이 아닌 메모리의 주소만 불러오는 문제가 발생하여

값이 갱신되지 않았다.

 

해결

1.  메소드 내부에 VO객체들을 지역변수로 생성하여 조회를 결과를 담았다.

2.. 문제 없이 값이 갱신되는 것을 확인할 수 있다.

반응형
LIST