数组<number>:获取并设置Int值而不转换

时间:2018-05-13 12:22:46

标签: arrays generics kotlin invariance

我正在构建一个Matrix类,并希望能够将Number存储在二维数组中。

var data: Array<Array<Number>> = Array(width, {Array(height, {0})})

这不起作用,因为Array<Number>Array<Int>是不变的。 我可以使用Array<Array<out Number>>使其工作,但Matrix将是不可变的,我不希望这样......

转换{0 as Int}会使编译器错误消失,但这似乎不是一个好主意。我也想做像添加这样的事情,我注意到无法添加Number s:

var n: Number = 1
n + 1 // does not work

那么我怎么能解决这个问题呢?为什么我不能添加两个Number s?

0 个答案:

没有答案