• 로그인 함 해보끄나?

  • Sarangnamu.net June 17, 2003
    Home Login Profile Study Open Project Q&A Google Code
    IntDef, StringDef 사용법
    안드로이드에서는 enum 사용에대해 보통 비추천을 하고 있기 때문에 숫자 또는 문자열로 기준 값을 정의 한 뒤 
    이를 기준으로 값을 비교 하는 형태가 주인데 문제는 enum 과 같이 딱 떨어지는 값이 아니다 보니 
    예외 상황이 발생될 가능성이 존재하게 된다. 
     
    이를 보안하기 위해 @IntDef 또는 @StringDef 로 지정하여 사용하는 것인데 이에 한 예제는 아래와 같다. 
     
    interface IWindowDelegate {
        companion object {
            const val WINDOW            = 0
            const val POPUP_WINDOW      = 1
        }
    }
     
    @IntDef(value = [
        IWindowDelegate.WINDOW,
        IWindowDelegate.POPUP_WINDOW
    ])
    annotation class WindowDelegateType
     
    가령 윈도우가 두가지 타입이 존재하고 이를 IntDef 를 통해 선언하였다면 
    아래와 같이 사용가능 하다. 
     
    @WindowDelegateType
    val type: Int
     
    저렇게 지정해 두었기 떄문에 만약 IntDef 내의 값이 아니라면 에디터에서 오류를 확인할 수 있다. 
     

    참고 링크 : https://android.jlelse.eu/android-performance-avoid-using-enum-on-android-326be0794dc3

    Comment


    입력하3 1585826690



    Locations of visitors to this page