본문 바로가기
개발/안드로이드

코틀린에서 const val 과 val 차이

by 장모 2021. 2. 21.

자바에서 상수를 선언할 아래와 같이 사용한다

class PageLoader {
    public static final int PAGE_SIZE = 20;
}

 

코틀린에서는 보통 companion object에서 상수를 선언해 사용하는데, 

val만 사용해도 변경이 안되기 때문에 아래처럼 사용하기도 한다. 

class PageLoader { 
    companion object { 
        val PAGE_SIZE = 20
    }
}

코틀린만 보면 별 차이가 없는데, 코틀린에서 선언된 PAGE_SIZE를 자바에서 사용하려면 함수가 되어 있는 것을 볼 수 있다. 

 

PageLoader.Companion.getPAGE_SIZE();

 

 

맨 위의 자바 코드에서 처럼 만들려면 const를 붙여줘야 한다. 

class PageLoader {
    companion object {
        const val PAGE_SIZE = 20
    }
}

 

이렇게하면 자바에서도 변수로 사용할 수 있다. 

PageLoader.PAGE_SIZE

 

결론, 기본적으로 val만 사용해도 변경할 수 없게 선언할 수 있지만 const를 붙여야 컴파일 타임에 할당되는 레알 상수를 만들 수 있다. 

 

끝. 

댓글