我是Android开发新手(6个月前开始),想从Java转向静态编程语言。我已经将我的项目转换为静态编程语言,并修复了除一个问题之外的所有问题,但我不知道如何修复它。
我正在尝试检索JSONArray(如JsonManager类中所示)并通过方法调用在名为DataDisplayPage的第二个类中使用检索到的数据。
我收到以下控制台错误,发生在第二类的这一行:jManager.fetch_data{theJsonArray-
无法推断此参数的类型。请明确指定它。
类型不匹配:推断的类型为(???)-
一流的JsonManager
interface OnTaskCompleted {
fun onTaskCompleted(theJsonArray: JSONArray)
}
class JsonManager {
var listener: OnTaskCompleted? = null
init {
Log.d("JsonManager", "Instance created")
}
fun fetch_data(callback : OnTaskCompleted) {
listener = callback
val url ="https://someURL"
AndroidNetworking.get(url)
.build()
.getAsJSONArray(object : JSONArrayRequestListener {
override fun onResponse(response: JSONArray) {
listener?.onTaskCompleted(response)
}
override fun onError(anError: ANError) {
Log.d("error", anError.toString())
}
})
}
二级数据显示页面
class DataDisplayPage : AppCompatActivity()
fun onStartUp() {
val jManager = JsonManager()
jManager.fetch_data{ theJsonArray ->
val newData = DepData()
newData.setCellData(theJsonArray as JSONArray)
}
}
}
到目前为止,您不能对Kotlin中定义的接口使用SAM转换。不过,你可以做一些事情来解决你的问题。
>
如果您在Java中定义接口,SAM转换将开始工作,并且您当前的代码将在没有任何其他更改的情况下工作。
如果希望使用接口作为fetch\u data方法的参数,并且希望使用Kotlin编写,则必须传入实现它的对象,这是一个稍微冗长的类似Java的解决方案:
jmManager.fetch_data(object: OnTaskCompleted {
override fun onTaskCompleted(theJsonArray: JSONArray) {
// ...
}
})
如果您想要一个很好的纯Kotlin解决方案,只需去掉接口,让函数fetch\u data取一个函数作为其参数,而不是接口(同样,您当前在数据显示页中的代码也可以处理此问题):
fun fetch_data(callback: (JSONArray) -> Unit) {
// ...
listener?.onTaskCompleted(response)
callback(response)
// ...
}
我最近使用Kotlin开发了Android应用程序,但我收到以下错误 无法推断此参数的类型。请明确指定 在我的课堂下面,我收到了错误。
我需要 Kotlin 中的一个集合来仅包含实现给定接口的元素。 例如:包含动物集合的地图: 通过阅读文档、博客和SO问题,我编写了使用Generics in关键字的代码: 现在我想在Test类中添加一个读取“data”内容的方法,例如将其打印到控制台: 如果我这样做,我会遇到编译错误: 我的解决方案是强制我的动物进入一个ArrayList 但是我不确定这是编写这种代码的最好方式。有没有更好的方式告
我的分类测试应用程序有一个问题,我使用了一个比较器。我收到一条信息: 线程“主”java.lang 中的异常:未解决的编译问题:无法推断排序器的类型参数 对于该代码: 分拣机类: 可比接口: id比较器类: 比较器接口: 这样用有什么错?我怎样才能做得更好?
我收到此错误,并且是 Swift 的新手。我想取数组的最后 5 个点 无法将“ArraySlice”类型的值转换为预期的参数类型“[CGPoint]”
我使用一个密封类从网络返回数据。但是当我在构建这个项目时,我得到了以下错误 类型推断失败:没有足够的信息来推断参数T in fun error(错误消息:String,错误:Throwable):状态请明确指定它。 我错过了什么? 这是代码
我仍然在玩我的日历,我已经设法将 https://github.com/SundeepK/CompactCalendarView 整合到我的一个片段中。只剩下一个错误,我做了一些研究,其他人也遇到了问题,例如使用ArrayList 示例代码: IDE说: 注:C:...\Uebersicht.java使用或覆盖不推荐使用的API。注意:用-Xlint:deprecation重新编译以获得详细信息。