[Kotlin] java의 static final 변수에 대응되는 것은?
```kt
class KakaoAuthHelper {
companion object {
const val REDIRECT_URI = "http://webpage-observer"
val AUTHZ_CODE_URL = "https://kauth.kakao.com/oauth/authorize?client_id=${KakaoConfig.app_rest_api_key}&redirect_uri=${REDIRECT_URI}&response_type=code"
}
}
```
AUTHZ_CODE_URL은 변수가 들어가야 해서 const를 안붙였지만... Byte Code -> Java Decompile 해보면
```java
public static final String REDIRECT_URI = "http://webpage-observer";
private static final String AUTHZ_CODE_URL;
static {
AUTHZ_CODE_URL = "https://kauth.kakao.com/oauth/authorize?client_id=" + KakaoConfig.INSTANCE.getApp_rest_api_key() + "&redirect_uri=http://webpage-observer&response_type=code";
}
public static final class Companion {
@NotNull
public final String getAUTHZ_CODE_URL() {
return KakaoAuthHelper.AUTHZ_CODE_URL;
}
```
이렇기 때문에 const를 붙이거나 안붙이거나 어차피 쓰는 쪽에서의 큰 차이는 없다. 둘 다 final이라 한 번 할당되면 수정 불가하므로...
'Java Stack > Kotlin' 카테고리의 다른 글
지연 평가 Sequence의 원리 (0) | 2023.02.10 |
---|---|
[Kotlin] Kotlin Coroutines (with Spring WebFlux) (0) | 2021.08.29 |
[Kotlin] Serialization: Gson, Jackson (0) | 2020.03.19 |
[Kotlin] 제네릭 : 변성(variance), 타입 프로젝션(type projection) (1) | 2017.12.08 |
[Kotlin] 제네릭 : 타입 파라미터 소거(erasure), inline 실체화(reified) (1) | 2017.12.08 |