🙋♂️ 이 주제라면 java/kotlin에 쓰여야 하지 않을까?
👋 Constant의 정의보단 Android에서 Constant을 효과적으로 하기위해 쓰는것이다.
👍 장점
👎 단점
class Color{
public final static int RED = 0;
public final static int BLUE = 1;
public final static int GREEN = 2;
}
companion object{
const val RED = "red"
const val BLUE = "blue"
const val WHITE = "white"
}
하지만, 메모리 성능 상 문제로 쓰지말란 이유가 있던데..?
15년도 구글에서 유튜브에 관련하여 영상을 올렸었다.
https://www.youtube.com/watch?v=Hzs6OBcvNQE&feature=youtu.be
👍 장점
👎 단점
👆 간단하게만 말하자면,
- Android는 시스템 메모리에 메모리를 할당한다.
- 할당된 메모리는 앱의 코드와 실행 중에 동적으로 사용하는 메모리에 사용된다.
- 이때 앱의 코드는 Android 앱을 빌드할 때 생성되는 DEX file이다.
- 즉, DEX 파일의 크기가 증가하면서 APK 파일도 커지고 앱이 실행될 떄 사용하는 메모리 양도 늘어난다.
enum class Color{
RED,BLUE,GREEN
}
아래와 같이 정의를 하고, 사용하면 된다.
class Car {
companion object{
@IntDef(SLOW, NORMAl, FAST)
@Retention(AnnotationRetention.SOURCE)
annotation class Speed
const val SLOW = 1
const val NORMAl = 2
const val FAST = 3
}
@Speed
private var speed : Int = SLOW
fun setSpeed(@Speed speed:Int){
this.speed = speed
}
}