写接口类型
mViewModel.gitHubEvent.observe(this, Observer { gitHubDTO: GitHubDTO ->
})
是因为泛型的参数是这样写的吗。
answer:no
userInfo.observe(this, object : Observer<String> {
override fun onChanged(t: String?) {
TODO("Not yet implemented")
}
})
总结其实就是 object: xxx {} 然后你根据提示去重写它的方法,或者写个override会提示, 或者直接拷贝接口的定义方法,前面加上overide改造下参数
最后还可以改成lamda格式—在方法有参数的情况下具备了,去掉object: { 重写方法 只保留里面的参数定义 -> }
定义object 类名
然后就可以MessageApi.createMessage()来调用了
public object MessageApi {
fun createMessage(): IMMessage {
return IMMessage()
}
}
但是有的地方为啥要加@JvmStatic
@JvmStatic
fun createTextMessage(account: String, sessionType: SessionTypeEnum, str: String): IMMessage {
return createMessage(MsgTypeEnum.text, str)
}
kotlin 枚举demo
/**
* @author bingley
* @date 2020/7/30.
*/
enum T {
undefined(-1, (Class)null),
Name(3, String.class),
ICON(20, String.class);
private int value;
private Class<? extends Serializable> fieldType;
private T(int var3, Class<? extends Serializable> var4) {
this.value = var3;
this.fieldType = var4;
}
}