[수미수의 개발 브로구]

[Kotlin] ktlint "contains a single class and possibly also extension functions for that class and should be named same after that class" 오류 해결하기 본문

Language & Framework/Kotlin

[Kotlin] ktlint "contains a single class and possibly also extension functions for that class and should be named same after that class" 오류 해결하기

수미수 2024. 11. 6. 08:44
반응형

1. 오류 현상

  ktlint 실행 시 아래와 같은 오류문구가 나면서 ktlin 실행이 되지 않았고, 해당 오류에 대한 원인과 해결 방법에 대해서 이야기 하고자 합니다.

.... contains a single class and possibly also extension functions for that class and should be named same after that class ...


2. 원인

  해당 오류 메시지는 kotlin 에서 이름 규칙이 지켜지지 않았을 때 발생 합니다. Kotlin에서는 파일에 단일 클래스나 객체만 포함되어 있는 경우, 그 파일 이름은 해당 클래스나 객체의 이름과 동일하게 하지 않으면 발생 됩니다. 역시 복잡한 단어의 클래스이다 보니 휴먼 에러로 단어 한개가 파일명과 클래스명과 달랐습니다.

그 외 일반적으로 아래와 같은 케이스에 발생된다고 합니다.

2.1. 파일명과 클래스명일 다를 때

  파일에 단일 클래스 또는 객체가 포함되어 있지만, 파일 이름이 해당 클래스/객체의 이름과 다를 경우 이 오류가 발생할 수 있습니다.

2.2. 파일에 확장 함수가 포함된 경우

   파일에 특정 클래스에 대한 확장 함수가 정의되어 있고, 그 클래스만을 위한 파일일 때도 동일한 규칙이 적용됩니다. 이 경우에도 파일 이름을 클래스와 동일하게 맞추는 것이 권장됩니다.

 

3. 해결 방법

  저의 경우, 파일명과 클래스명이 달라서 발생 하였습니다. 다시 한번 파일명과 클래스명을 확인하였고, 해당 오류를 해결 할 수 있었습니다.

역시 휴먼 에러가 제일 무섭다는 것을 다시 한번 알게 되었습니다.

반응형