inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

16강 Java에서 확장함수 가져오기 사용 중 오류가발생합니다

해결된 질문

613

이동진

작성한 질문수 4

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

Java에서 Kotlin을 불러서 사용할 때 인스턴스화 해서 사용하면 오류 없이 잘 실행이 되는데 Kotlin 클래스명으로 객체를 불러서 사용하려고 하면 에러가 발생해서 실행이 안됩니다

발생하는 에러는

java: non-static method lastChar1(java.lang.String) cannot be referenced from a static context

입니다 왜그런지 알수있을까요? ㅠㅠ

java kotlin oop

답변 1

1

최태현

안녕하세요, 동진님~!! 금요일에도 이렇게 열심히 공부하시고, 대단하십니다!! 😊

넵넵, 바로 답변 드려보자면, 확장함수의 경우 .class 파일로 변환될 때, '정적 팩토리 메소드'로 변환됩니다!!

실제 아래 이미지에서 startsWithA 라는 확장함수가 Java의 static method로 변환되었지요!

image

Java의 static method는 해당 클래스를 인스턴스화 하여 접근하는게 아니라, 클래스.함수이름 자체로 접근해야 하기 때문에 Java에서 Kotlin의 확장함수를 사용하고 싶으시다면 다음 코드와 같이

public static void main(String[] args) {
  Lec16MainKt.startsWithA("3");
}

사용해보시면 잘 동작할 것 같습니다 ㅎㅎㅎㅎ

 

언제든지 또 궁금하신 내용 있으시면, 편하게 질문 올려주세요~!! 감사합니다!!! 🙇🙇

 

0

이동진

답변감사합니다!!

수업노트

0

52

1

싱글톤과 스프링

0

71

2

get() = 3

0

49

2

강사님

0

74

1

강의 복습하면서 생긴 질문

1

93

1

Kotlin과 Java의 현업에서의 활용

0

121

2

data class와 자바의 Lombok을 이용한 DTO 클래스 차이 질문

0

72

1

코틀린에서 상속 시, 주의점에 대한 질문

1

95

3

내용 이해 질문

0

56

1

자바와 코틀린의 함수형 프로그래밍,

1

91

1

플랫폼 타입 설명 문의

2

73

2

널 아님 단언 관련 질문

0

83

1

강의 중 질문

0

79

2

범위 비교 질문

1

91

2

타입캐스팅 궁금한점 질문드립니다.

1

239

2

코틀린 val 질문

0

166

2

완강 후 Kotlin 이런저런 질문 드려봅니다!

3

408

2

확장함수 스타일 질문

0

138

2

확장 프로퍼티 질문

1

156

1

update 함수를 만든다는게 어떤 의미인지 예시가 궁금합니다!

1

283

1

java class의 NotNull 어노테이션 인식

1

260

1

[16강] 확장함수 관련 질문입니다!

1

130

2

리턴타입 사용시 any를 사용해도 괜찮은가요?

1

138

1

안녕하세요 scope function 에 receiver 가 없는 경우

1

168

1