object - 扩展接口时,我们应该使用object关键字吗?
问题描述
我有两段不同的代码。在一个我需要使用对象,而在第二个我不是。有人可以解释一下情况之间的区别:第一个代码:
private val onInitWebResponseHandler: VolleyHandler.WebResponseHandler = VolleyHandler.WebResponseHandler()
{
Thread(ParseJsonStringOnInit(WeakReference(this),
weakRefIOnAllScoresDataFirstFetched, it)).start()
}
第二个代码:
val competitionOrderLevelComparator : Comparator<CompetitionObj> = object : Comparator<CompetitionObj> {
override fun compare(object1: CompetitionObj, object2: CompetitionObj): Int
{
return object1.orderLevel - object2.orderLevel
}
}
fun interface WebResponseHandler
{
fun onWebResponseFinished(jsonString:String?)
}
另外第一个代码,如果接口没有构造函数,我们可以有()括号吗?
解决方案
推荐阅读
- django - 通过在 django test 中修补自定义后端登录到测试客户端
- javascript - Firestore 在一个事务中读取/更新文档数组
- javascript - 在javascript中格式化数字
- swift - 如何使用 Combine 向服务器发送异步加速度计更新
- tensorflow - `tensorflow_io.bigquery` 返回 `Empty update [Op:IO>BigQueryReadSession]` 错误
- icons - 令人困惑的图标/网站图标
- java - 为什么while循环执行两次?
- kubernetes - k8s 选择器表达式中的引号是否重要?
- html - 我在 html 中创建了一个输入标签,但我不知道如何保存用户输入
- python - 线性不等式约束在 Drake 中不起作用