我正在阅读如何实现 Volley 回调here
我们在代码中使用它的方式是这样的
JsonObjectRequest jsonrequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {}
那么 Response 类如何能够像这样访问其接口(interface)方法呢?新的Response.Listener是不是应该是这样的?
new Response().Listener();
使用响应类的对象进行访问?
这个语法从何而来,逻辑是什么?
new Response.Listener();
最佳答案
您不是实例化 Response,而是实例化 Listener(匿名),它是 Response 的内部类(接口(interface))。
这个
new Response().Listener();
是实例方法调用,例如 new Integer(42).equals(42) 或 new Thread(..).start()
这个
new Response.Listener()
是一个匿名内部类实例化,如new View.OnClickListener(){..}
,与静态字段/方法访问相同:Boolean.TRUE, Integer.compare(1 ,2)
(您可以将 Response 视为访问 Listener 类的路径 - 如果这对您来说更容易)
关于java - 调用类的接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45561910/