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

작성자 없음

작성자 정보가 삭제된 글입니다.

김영한의 실전 자바 - 중급 2편

문제와 풀이2

shuttle.showinfo를 호출시 실행창 질문

작성

·

152

·

수정됨

0

package generic.test.ex3

object UnitPrinter { //제네릭 메서드


    fun <T : BioUnit>printerV1(t: Shuttle<T>){
        println(t.showInfo())
    }
    fun printerV2(shuttle: Shuttle<out BioUnit>){
        println(shuttle.showInfo())
    }
    fun <T : BioUnit>printerV3(t: Shuttle<T>){
        val unit = t.out()
        println("이름: ${unit.name}  hp:${unit.hp}")
    }
    fun printerV4(shuttle: Shuttle<out BioUnit>){
        val unit = shuttle.out()
        println("이름: ${unit.name}  hp:${unit.hp}")
    }
}

자바와 코틀린은 100퍼센트 호환이 된다고 해서 코틀린으로 강의를 보고있습니다.

강의에선 v1과 v2로 인자로 받은 셔틀에서 unit을 꺼내어 내용을 출력했는데요. 그렇게 안하고 셔틀에서 바로showinfo를 호출해서 실행창에

name : 마린 hp : 40

kotlin.Unit

name : 마린 hp : 40

kotlin.Unit

이렇게 줄바꿈으로 kotlin.Unit이라는게 자동적으로 붙는데 왜이런건가요 . 강의에서처럼 unit을꺼내어서 출력하면 안붙습니다.

답변 2

0

shuttle.showInfo() 가 이미 출력하는 함수인데 그걸 또 println 하니까 코틀린이 알아서 뭐 해줬다 이런거 아닐까요 ?

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 준호님

코틀린 관련해서는 도움을 드리기 어렵습니다.

감사합니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기