본문 바로가기
Android

[Android] Java 클래스에서 Kotlin static 함수를 불러올 때, Non-static method cannot be referenced from a static context 에러

by 준그래머 2024. 6. 26.
반응형

현상 경로:

Java 클래스에서 Object 클래스 함수를 불러오려고 하는데, 기존에 불러오던 것 처럼 불러오니 불러오지 못하는 현상이 발생했다.

Assert.equals(ParticipantData.DEFAULT_SELF_SUB_ID, subId);

 

컴파일 에러 발생

Non-static method cannot be referenced from a static context 

 

 

문제의 원인:

정적 함수에서 비정적 메서드를 호출하려고 할 때 발생하는데, Assert.equals 메서드는 비정적 함수기 때문에 정적 컨텍스트에서 호출할 수 없다.

 

 

해결 방법:

Kotlin에서 싱글톤 객체는 자동으로 INSTANCE 필드를 생성하기 때문에 정적 컨텍스트에서 접근할 수 있도록 한다.

Assert.INSTANCE.equals(ParticipantData.DEFAULT_SELF_SUB_ID, subId);

Object 클래스의 인스턴스를 이용해 호출하면 된다.

 

반응형