- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的设置中,我试图有一个界面 Table
继承自 Map
(因为它主要用作 map 的包装器)。两个类继承自 Table
- 本地和全局。全局的将有一个可变的映射,而本地的将有一个只有本地条目的映射。
// entries
sealed class Entry {
class EntryLocal : Entry
class EntryGlobal : Entry
}
interface Table : Map<String, Entry> {
fun getRecursive(key: String): Entry?
}
class GlobalTable(val map:MutableMap<String, Entry>) : Table, Map<String, Entry> by map {
override fun getRecursive(key: String) = this[key]
...
}
class LocalTable(
private val parent: Table,
val map: Map<String, EntryLocal>
) : Table, Map<String, EntryLocal> { // gives error
override fun getRecursive(key: String): Entry? = map[key] ?: parent.getRecursive(key)
}
我收到以下错误:
Type parameter V of 'Map' has inconsistent values: Entry, EntryVar
这是为什么?没有
Map<String, EntryLocal>
继承自
Map<String, Entry>
?
最佳答案
您是对的 Map
的值类型是协变的,所以是 Map<String, EntryLocal>
是 Map<String, Entry>
.
然而,这不是你的问题。问题是LocalTable
继承自 Map<String, EntryLocal>
(直接)和 Map<String, Entry>
(通过 Table
)所以不清楚 LocalTable
中的值类型应该是什么.
换句话说,LocalTable.get
的返回类型是什么? ?是吗Entry
或 EntryLocal
?
简而言之,问题如下:
interface M<T> {}
interface A : M<String> {}
interface B : M<Object> {}
class C : A, B {}
你会得到同样的错误,说参数
T
的
M
具有不一致的值。即使
String
是
Object
,Kotlin 不会假定类型参数
T
基类
M
因此应该是
String
(或
Object
)。
关于Kotlin 类层次结构和(协)方差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66715676/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!