안드로이드 한줄코딩
[코틀린] Kotlin callback 함수 간단히 만들기 - java callback과 비교
모바일큐레이터
2023. 9. 10. 11:06
Java의 경우
Callback callback; //콜백 선언
public void setCallback(Callback callback) { //콜백 저장
this.callback = callback;
}
public void forCallback() { //콜백 호출
if(callback != null) callback.onClick(1);
}
public interface Callback {
void onClick(int code);
}
setCallback(new Callback() { //콜백 받는 코드
@Override
public void onClick(int code) {
}
});
forCallback() //호출
Kotlin 방법 1
var callback: Callback? = null //콜백 선언
fun setCallback(backFun: (Int) -> Unit) { //콜백을 함수로 선언
this.callback = object : Callback {
override fun onClick(ix: Int) {
backFun(ix)
}
}
}
fun forCallback() { // 콜백 호출
callback?.onClick(1)
}
interface Callback {
fun onClick(ix: Int)
}
setCallback { i -> println() } //콜백 받는 코드
forCallback() //호출
Kotlin 방법2 - 선언과 동시에 호출하는 방법
fun forCallback(callClick: (Int) -> Unit) { //콜백을 함수로 선언, 콜백 호출
callClick(1)
}
forCallback { i -> println() } //호출