본문 바로가기

# 02/코틀린

[Kotlin] 네트워크 호출 구현 람다식 활용

반응형

네트워크 처리 결과에 따른 콜백 함수 구현


콜백(callback) 함수란 특정 이벤트가 발생하기까지 처리 되지 않다가 이벤트가 발생하면 즉시 호출되어 처리하는 함수


기존의 자바 코드


// 성공과 실패 콜백 함수를 위한 인터페이스 선언

public interface Callback {

void onSuccess (ResultType result);

void onError (Exception exception);

}

// networkCall의 선언

public void networkCall (Callback callback) {

try {

// 성공 시 onSuccess 콜백 함수 호출

callback.onSuccess(myResult);

} catch ( e: Throwable) {

// 실패 시 onError 콜백 함수 호출

callback.onError(e);

}

}


// networkCall의 사용 - 인자에서 인터페이스 구현을 익명 객체를 만들어 처리

networkCall ( new Callback() {

public void onSuccess ( ResultType result ) {

// 네트워크 호출에 성공했을 때의 구현부

}

public void onError ( Exception e ) {

// 네트워크 호출에 실패했을 때의 구현부

}

} )



코틀린 코드


// 코틀린으로 만들어진 네트워크 호출 구현부


// 1. 람다식 함수의 매개변수를 가진 networkCall() 함수 선언

fun networkCall ( onSuccess : (ResultType) -> Unit, onError : (Throwable) -> Unit ) {

try {

onSuccess (myResult)

} catch ( e : Throwable ) {

onError ( e )

}

}


// 2. networkCall () 함수의 사용 - 인자 형식에 람다식을 사용

networkCall ( result -> {

// 네트워크 호출에 성공했을 때 구현부

}, error -> {

// 네트워크 호출에 실패했을 때 구현부

});


반응형