인프런 커뮤니티 질문&답변

류돌프님의 프로필 이미지
류돌프

작성한 질문수

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

13강. 코틀린에서 중첩 클래스를 다루는 방법

13강 코드 질문있습니다.

작성

·

257

1

class JavaHouse(
    val address: String,
    val livingRoom: LivingRoom = LivingRoom(10.0)
) {
    class LivingRoom(private val area: Double)
}

fun main() {
    val house: JavaHouse = JavaHouse("busan", JavaHouse.LivingRoom(10.0))
}

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

강의 예시 코드를 작성하고 main() 함수에 JavaHouse 의 인스턴스를 생성했습니다.

main() 함수를 실행하니, 아래와 같은 에러가 발생했습니다.

noSuchMethodError 라는걸 보면 JavaHouse() 라는 메서드가 없다고 에러가 뜬것 같은데, 저는 JavaHouse() 를 생성자의 용도로 사용했다고 생각했습니다. 혹시 어떤 지점에서 제가 잘못 생각했는지 알 수 있을까요? 감사합니다.

<에러>

Exception in thread "main" java.lang.NoSuchMethodError: 'void com.lannstark.lec13.JavaHouse$LivingRoom.<init>(double)'

at com.lannstark.lec13.Lec13Kt.main(Lec13.kt:17)

at com.lannstark.lec13.Lec13Kt.main(Lec13.kt)

 

 

답변 1

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요, 파이후님!!! 우선 보내주신 코드를 제가 확인해본 바로는 잘 동작하고 있습니다!!

image

이럴 때 의심해볼 수 있는 것은

  1. import가 잘 되었는지 = JavaHouse.LivingRoom이 가리키는 것인 지금 위에 있는 JavaHouse의 LivingRoom인지 아니면 다른 패키지에 있는 같은 이름의 LivingRoom인지

  2. 혹시나 IDE설정이 꼬인 것은 아닌지 (IntelliJ를 종료했다가 켜보시는 것도 방법일 것 같습니다!)

 

kotlin playground (https://play.kotlinlang.org/) 에서 잠깐 확인해보시는 것도 좋을 것 같습니다!

감사합니다~!! 😊

 

 

류돌프님의 프로필 이미지
류돌프

작성한 질문수

질문하기