• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

main 함수 실행과 관련해서 질문드립니다.

23.01.27 23:07 작성 23.01.27 23:22 수정 조회수 314

1

안녕하세요. 좋은 강의 잘 듣고 있습니다.

현재 인텔리제이에서 src/main/kotlin 폴더를 만들어서 강의를 따라가고 있습니다.

2강 강의를 듣던 도중 println(str?.length) 를 실행해보려고 main 함수를 실행시켰더니 빌드가 되면서 에러가 발생합니다.

lec12 패키지의 Lec12Main class에서

error: package Person does not exist 가 발생합니다.

Run Configuration에서 Run이 되기 전에 Build를 안 하게 옵션을 바꿔주면 함수가 실행은 되지만 str에 null을 넣었을 때도 길이가 3이 나오는 기이한 현상이 발생합니다.

어떻게 해결하는 것이 좋을까요?

 

(일단은 에러가 나는 부분을 주석처리하고 강의를 진행하고 있습니다!)

답변 1

답변을 작성해보세요.

1

안녕하세요 JUNN님!!! 좋은 질문 올려주셔서 감사드립니다!!! 😊

우선 2가지를 나누어 답변 드려보겠습니다!!!

 

[1. Main 함수 에러]

lec12 패키지의 Lec12Main class에서
error: package Person does not exist 가 발생합니다.

아이고~~ 이 부분은 github에 올라가 있는 버전으로 에러가 나는게 맞습니다!!! github에 올려드린 java 코드들은 제가 강의 촬영을 위해 그때그때 타이핑 했던것들을 단순히 올려둔거라, 확인해보니 에러가 나고 있더라고요!! 😭 주석처리 하고 진행해주시면 될 것 같습니다!!! (최신 github에는 다른 분께서 이 부분을 PR 올려주셔 반영되어 있습니다!)

 

[2. Build 없이 Run 하는 경우에 3이 나오는 문제

Run Configuration에서 Run이 되기 전에 Build를 안 하게 옵션을 바꿔주면 함수가 실행은 되지만 str에 null을 넣었을 때도 길이가 3이 나오는 기이한 현상이 발생합니다.

제 생각에는 build 를 해야 str에 null이 들어간 것이 컴파일이 되고, str에 null이 들어 있는 버전으로 실행되는 것 같아요!!

Kotlin을 돌려보실 때에 build -> run 순서로 해주시면 모든 코드를 정상적으로 돌려보실 수 있을 것 같습니다 ㅎㅎㅎ

 

혹시나 또 궁금한 점 있으시면 편하게 질문 남겨주셔요!!

항상 감사드립니다!! 🙇🙇

답변 정말 감사드립니다!!