플레이그라운드 TDD: 자동차 경주 게임 구현 도중

자동차 경주 게임 구현 도중

indent 를 줄이는 한가지 방법


image

위와 같이 indent를 더 이상 줄이기 힘들다고 판단되는 곳까지 왔다

사실 본인은 indent를 1로 만드는 것이 더이상 불가능하다고 생각했다

그러나.. 갓텔리제이가 힌트를 주기를…

image

이것을 do while문으로 바꿔보지 않겠는가 라고 계시를 내려주었다

image

역시 갓텔리제이다

스택프레임과 객체


아래와 같이 스프링 DI 처럼 외부에서 객체를 주입하고 싶었다

그래서 아래처럼 코드를 구현하였는데..

(구현부)
image

(실행부)
image

근데 이상한 건 항상 외부에서 객체를 꺼냈을 떄 null이 나오는 것이다..

분명히 필자는 객체는 reference타입이라서

어떤 곳에서든지 객체를 생성받아서 값을 set하더라도

항상 동일한 객체를 바라본다고 생각했었다

그런데 null이 나왔다..

image

그래서 조사를 해보았다

처음 main 메서드를 실행할 때는 @815이다. 이때 DI처럼 Prompt에 생성자 주입을 한다

그리고 새로운 객체를 생성하는 순간 ! @980 객체가 들어온다 (아래 그림)

image

게임이 종료된 후 호출부인 main 메서드에서 확인해보니 @815 객체가 표시되었다..

호출한 곳는 여전히 과거의 객체를 보고 있었고

호출 된 곳은 새로이 생성된 객체를 바라보고 있었다..

image

그래서.. 새롭게 생성된 객체를 꺼내고 싶으면

image

prompt가 이 일을 한다는 것이 조금 이상하게 느껴지지만.. 새로운 객체를 꺼내는 것에는 성공하였다




© 2020.12. by 따라쟁이

Powered by philz