Java 无法识别在匿名类中实现的重写方法

Java 无法识别在匿名类中实现的重写方法,java,android,Java,Android,我有以下代码,摘自本教程: 但是,尽管在匿名侦听器类中实现了onResponse()方法,Response.Listener仍以红色下划线,并出现以下错误:“‘从侦听器派生的匿名类’必须声明为抽象的,或者在‘侦听器’中实现抽象方法‘onResponse(T)”。我不太清楚为什么它看不出我确实做到了这一点。Response.Listener是一种泛型类型。您必须指定: new Response.Listener<String>() newresponse.Listener() 使用

我有以下代码,摘自本教程:


但是,尽管在匿名侦听器类中实现了onResponse()方法,Response.Listener仍以红色下划线,并出现以下错误:“‘从侦听器派生的匿名类’必须声明为抽象的,或者在‘侦听器’中实现抽象方法‘onResponse(T)”。我不太清楚为什么它看不出我确实做到了这一点。

Response.Listener是一种泛型类型。您必须指定:

new Response.Listener<String>()
newresponse.Listener()
使用两个库时会出现此问题。要解决这个问题,只需删除

compile 'com.android.volley:volley:1.0.0' 

您的代码将正常工作。

这非常有效,谢谢!不过,我现在面临的问题是:如何将返回的
响应
字符串保存到可以在程序中使用的变量中?内部类显然需要声明它们访问的变量
final
,这使我无法将
response
的值保存到预先声明的字符串中…您将无法为最终字符串分配新值,因此,请使用字段响应为侦听器创建一个类,或者将响应设置为与问题中的代码完全相同。请注意final关键字在Java中的含义-您声明final TextView mResponse,因此无法重新分配引用,但可以调用setter。
compile 'dev.dworks.libs:volleyplus:+'
compile 'com.android.volley:volley:1.0.0'
compile 'com.android.volley:volley:1.0.0'