代码之家  ›  专栏  ›  技术社区  ›  Sparker0i

Kotlin中的Java接口对象

  •  0
  • Sparker0i  · 技术社区  · 6 年前

    假设我有一个如下的界面:

    interface JSONObjectRequestListener {
        fun onSuccess()
        fun onFailure()
    }
    

    现在我的主要活动中有一个方法:

    fun onRequestHappen(listener: JSONObjectRequestListener)
    

    如果这是java,我会将此对象传递为:

    onRequestHappen(new JSONObjectRequestListener() {
        @Override
        public void onResponse() {
            // do anything with response
        }
    
        @Override
        public void onError() {
            // handle error
        }
    });
    

    如何在Kotlin中传递这个接口的对象?

    this 因为那个问题要求的和我想要的完全不同

    1 回复  |  直到 6 年前
        1
  •  3
  •   savepopulation    6 年前

    val listener = object : JSONObjectRequestListener {
    
        override fun onResponse() {
            // do anything with response
        }
    
        override fun onError() {
            // handle error
        }
    }
    

    把它传给你的func如下:

    onRequestHappen(listener)
    

    要在func调用中执行此操作,可以使用以下代码段:

    onRequestHappen(object : JSONObjectRequestListener {
    
            override fun onResponse() {
                // do anything with response
            }
    
            override fun onError() {
                // handle error
            }
        })