fun POST(vararg params: Pair<String, Any>) {
// HashMap to pass arguments to Volley
val hashMap = HashMap<String, String>()
params.forEach {
// Convert all Any type to String and add to HashMap
hashMap[it.first] = it.second.toString()
}
// Make the Http Request
makeRequest(Request.Method.POST, hashMap)
}
private fun makeRequest(method: Int, params: HashMap<String, String>) {
// Creating a StringRequest
val req = object : StringRequest(method, url, { res ->
// Creating JSON object from the response string
// and passing it to result: (JSONObject) -> Unit function
result(JSONObject(res.toString().trim()))
}, { volleyError ->
// Getting error message and passing it
// to val error: (String) -> Unit function
error(volleyError.message!!)
}) {
// Overriding getParams() to pass our parameters
override fun getParams(): MutableMap<String, String> {
return params
}
}
// Adding request to the queue
volley.add(req)
}
// For using Volley RequestQueue as a singleton
// call WolfRequest.init(applicationContext) in
// app's Application class
companion object {
var context: Context? = null
val volley: RequestQueue by lazy {
Volley.newRequestQueue(context
?: throw NullPointerException(" Initialize WolfRequest in application class"))
}
fun init(context: Context) {
this.context = context
}
}
WolfRequest.Companion.init(getApplicationContext());
HashMap <String, String> params = new HashMap <> ();
params.put("id", "123");
new WolfRequest(config.PING_EVENTS,*new WolfRequest()*
{
public void response(JSONObject response) {
Log.e("Ping","PING");
}
public void error(String error) {
Log.e("Ping",error);
}
}).POST(params);
谢谢。
new WolfRequest("", (s) -> Unit.INSTANCE, (s) -> Unit.INSTANCE){
....
}
例外情况。kt: 在科特林: 它在kotlin中工作,函数是内联的。 但是当在Java代码中使用时,它就是不能内联,仍然是一个正常的静态方法调用(从反编译的内容中可以看出)。 像这样的东西:
我有一个用kotlin编写的库,我想在Java程序中使用它,但我不知道如何正确调用异步方法。 在Java中,我必须向函数传递什么参数?IntelliJ说我需要这样的东西:
这段代码适用于Java。但是在迁移到Kotlin之后,编译器higlits方法出现以下文本错误: Andswer是: 如果希望在另一个类中使用这个本机函数,可以指定包含它的类,如下所示:
我的目标是用一种非常简洁、模块化的方式从另一个类调用凌空: 但是我很难让侦听器部分工作,以便能够访问来自以下方法的结果数据
Volley 是一个 Java 网络队列,支持队列请求和优先级。Volley 在加载图片上并不是特别高效,因为它会将所有收到的数据都拷贝到字节数组中。尽管 Volley 试图重用这些字节数组,它对于中等或大图的回收复用率相对比较低。这样的结果是,Volley 用于 Glide 一起用于加载图片时,可能导致大量的内存抖动。当然,如果一个应用已经用了 Volley ,它仍然还是一个比较合适的选择,因为
我已经在Kotlin工作了几个月,我开始制作库,就像我在java源代码中做的那样,而且工作得很好。但是,我有一个很大的问题与这些库,我不能调试他们(而我从来没有问题的java的)。当我进入消息来源时,我唯一拥有的是: 我尝试了很多方法,比如在gradle文件中添加源集,在gradle中创建任务来查找源并将它们附加到JAR/AAR以及其他一些我不记得的事情,但绝对没有效果。 我的问题是:编译kotl