일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- androidx
- 파이썬
- ASMR
- recyclerview
- 이모지
- 넷플릭스
- 명심보감
- 이모지메모
- kotlin
- 소울칼리버6
- Flutter
- Android
- 공부집중
- Linux
- Streaming
- 벤자민플랭클린
- 1인개발자
- Firebase
- jetpack compose
- 좋은글필사하기
- 장자명언
- FSM
- DART
- bash
- 공자명언
- 명언모음
- Freesound
- Coroutine
- 코틀린
- 오픈소스
Archives
- Today
- Total
Vintage appMaker의 Tech Blog
[코틀린] 확장 프로퍼티 본문
- 코틀린의 강력한 기능중에 하나가 확장함수이다.
- 확장함수는 이미 정의된 클래스에 새롭게 "덧붙여" 함수를 추가할 수 있는 기능이다.
- 확장 프로퍼티도 지원한다. 확장함수와 같지만 프로퍼티를 덧붙일 수 있다.
/**
* Created by park on 2017-12-31.
*/
var passwd : String = ""
get(){
if(field.length > 5) {
field = "길이를 초과했음"
}
return field
}
set(s : String ){
println ("\"${s}\"을 저장함")
field = s
}
// 기존 클래스에 filed를 추가할 수 없지만
// Properites는 추가가능하다.
// 그러나 확장함수보다는 활용성이 무척적다.
class EmptyClass {
var message : String = ""
}
var EmptyClass?.newProp : String
get(){
return this!!.message
}
set(value) { this!!.message = value + "-" + this!!.message}
// MutableList에 firstHead 프로퍼티 추가
var MutableList<String>?.firstHead : String
get() {
return this!!.get(0)
}
set(value) {
this!!.add(0, value)
}
fun main(args : Array<String> ){
passwd = "1234567867657572313"
println (passwd)
// 내가만든 클래스에 확장 프로퍼티 추가
val empty = EmptyClass()
empty.newProp = "안녕"
empty.newProp = "반가와요"
empty.newProp = "새로운 클래스"
println (empty.newProp)
// mutableList에 확장 프로퍼티 추가
// Queue와 흡사한 Log처리
val mLog = mutableListOf<String>("success:100", "pass:203", "fail:001")
println(mLog)
mLog.firstHead = "success:100"
mLog.firstHead = "shutdown:-1"
mLog.forEach { println(">${it}"); }
println(mLog.firstHead)
}
'Source code or Tip > Android(Java, Kotlin)' 카테고리의 다른 글
[kotlin] infix 함수 예제 (0) | 2021.02.05 |
---|---|
Android 8.0 이상에서 http 정책(Cleartext http 에러, class not found) (0) | 2021.01.27 |
[오픈소스] 구글플레이 산수교육앱 (0) | 2021.01.15 |
[Android Deeplink] 웹에서 앱을 설치 및 실행시키기 (0) | 2021.01.11 |
[kotlin] sealed class와 널체크를 위한 Elvis 연산자 (0) | 2021.01.06 |
Comments