• 로그인 함 해보끄나?

  • Sarangnamu.net June 17, 2003
    Home Login Profile Study Open Project Q&A Google Code
    kotlin and SAM
    Last Modify : 04 January, 2018(04:31)
    일단 kotlin 을 짬짬히 해본 결과 SAM 형태의 interface 를 별도로 더 이상 만들 필요 없음을 인지 했다 가령 자바는 아래와 같은 인터페이스로 작업했다면 interface ITest { void onResult(boolean res); } class Test { private ITest mListener void setOnTestListener(ITest l) { mListener = l } void test() { if (mListener != null) { mListener.onResult(true); } } } class main() { void test() { Test a = Test(); a.setOnTestListener((res) -> { }); a.test(); } } 코틀린은 아래와 같이 하면 끝난다. class Test { lateinit var mListener : (Boolean) -> Unit fun test() { // kotlin 버전 업그레이드로 방식이 변경되었다. 예전 방식 -> mListener(true) // or mListener.invoke(true) } } class main() { fun test() { val a = Test() a.mListener = { res -> } a.test() } } 만약 인자로 리스너를 받아야 된다면 아래처럼 한다. fun test(listener: (Boolean) -> Unit) { // kotlin 버전 업그레이드로 방식이 변경되었다. 예전 방식 -> listener(true) listener.invoke(true) } 마치 예전의 function point 같은 느낌이랄까?

    Comment


    입력하3 1537389390



    Locations of visitors to this page