java - 调用类的接口(interface)方法

标签 java android oop interface

我正在阅读如何实现 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/

相关文章:

javascript - 警告 : flattenChildren(. ..) 与 react-native Navigator 和 DrawerLayoutAndroid

java - OOP - 是否需要构造函数?

c# - 覆盖显式接口(interface)实现?

java - JAVA排序时运行时错误

java - 查询Firestore数据并向与查询匹配的所有文档添加一个字段

java - RxJava : Observing messages emitted from a socket

android - 使用导航组件 API 时更改语言 24+

android - SpeechRecognizer 在第一个结果后没有听到

c++ - OpenGL 和 OOP 编程

java - 准备好的语句的setString不起作用