使用Java开发Android过程中有很多的匿名类,抽象类的使用,而kotlin中是怎么表达的呢?
//java代码
ParamsString map = new ParamsString("user.base.login")
.add("mobile", name)
.add("password", password);
sendRequest(map, new HttpCallback<LoginBean>() {
@Override
public void onSuccess(LoginBean o) {
}
@Override
public void onErro(String erro) {
super.onErro(erro);
}
});
下面是kotlin的表达:
//kotlin代码
var map = ParamsString("user.base.login").add("mobile", name).add("password", pwd)
sendRequest(map, object : HttpCallback<LoginBean>() {
override fun onStart() {
super.onStart()
}
override fun onSuccess(t: LoginBean?) {
}
override fun onErro(erro: String?) {
}
})
类似的如果你需要获取一个抽象类的实例,可以直接这样:
var test = object : TimerTask() {
override fun run() {
}
}
kotlin中去除了匿名类的概念,使用对象表达式以及对象声明这个说法来概括。
像刚才抽象类的使用方式就是一种对象表达式,可以理解为var test = object
但是这个object
不是一个简单的类,他有一个父类,他继承自TimerTask
。
网友评论