-
[안드로이드] Kotlin 확장 함수(Extension functions), 확장 프로퍼티개발/Android 2022. 10. 14. 15:19
Extension functions
확장 함수와 프로퍼티를 사용하면 외부 라이브러리에 정의된 클래스를 포함해
모든 클래스의 API를 그 클래스의 소스코드를 바꿀 필요 없이 확장할 수 있다.
확장 함수를 사용해도 실행 시점에 부가비용이 들지 않는다.
확장 함수와 확장 프로퍼티는 어떤 클래스의 멤버 메소드와 변수인 것처럼
호출할 수 있지만 그 클래스의 밖에서 선언된 함수와 변수이다.
확장 함수를 만들려면 추가하려는 함수 이름 앞에 그 함수가 확장할 클래스의 이름을 덧붙이면 된다.
클래스 이름을 수신 객체 타입(receiver type)이라 부르며,
확장 함수가 호출되는 대상이 되는 값(객체)을 수신 객체(receiver object)라 부른다.예를 들어 String 확장함수
fun String.jsonToMap(): HashMap<String, String> { return Gson().fromJson<HashMap<String, String>>(this, HashMap::class.java) } fun String.moneyFormat(showWon: Boolean): String { if(this.isEmpty()) return "" val decimalFormat = if(showWon) DecimalFormat("###,###원") else DecimalFormat("###,###") return decimalFormat.format(this.toInt()) } //사용 "1000".moneyFormat(true) // 1,000
1) json 형식의 문자열을 Map으로 변환
2) 숫자 형식의 문자열에 금액 콤마를 추가
'개발 > Android' 카테고리의 다른 글
[안드로이드] 의존성 주입(Dependency Injection) Dagger2, Hilt, Koin 장단점 (0) 2022.10.26 [안드로이드]레이아웃 자동 애니메이션 처리 animateLayoutChanges (0) 2022.10.14 [안드로이드] Android Application Class 적용 (0) 2021.12.17 [안드로이드] Bottom Sheet Dialog Fragment 생성시 fullScreen 적용 (0) 2021.12.17 안드로이드10 open failed: EACCES (Permission denied) 해결 (0) 2020.11.04