개발/Android
[Android] Java 클래스에서 Kotlin static 함수를 불러올 때, Non-static method cannot be referenced from a static context 에러
준그래머
2024. 6. 26. 10:58
반응형
현상 경로:
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 클래스의 인스턴스를 이용해 호출하면 된다.