如何在kotlin中获得多维原始数组类?

在Java中,我一直在使用gson来解析一个像这样[[1.2, 4.1], [3.4, 4.4]] 1.2,4.1 [[1.2, 4.1], [3.4, 4.4]] 3.4,4.4 [[1.2, 4.1], [3.4, 4.4]]的JSON到一个java原始的多数组double[][]

代码看起来像这样(工作正常):

 String json = "[[1.2, 4.1], [3.4, 4.4]]" double[][] variable = new Gson().fromJson(json, double[][].class); 

有没有办法在kotlin中获得double[][].class ? 是double[][] variable; 可以替代kotlin?

编辑:

我的目标是在kotlin中用gson实现同样的行为。 我有一千个双数组解析。

我想在kotlin中做这样的事情:

 val json = "[[1.1, 1.2], [2.1, 2.2, 2.3], [3.1, 3.2]" val variable:Double[][] = Gson().fromJson(json, Double[][]::class.java) 

回答Gson问题

对于您的用例的类类型使用Array<DoubleArray>::class.java)

一些额外的多维数组字

只需将arrayOf包装到另一个arrayOfdoubleArrayOf (较少的Boxing开销)以获得类似于Array<DoubleArray>东西:

 val doubles : Array<DoubleArray> = arrayOf(doubleArrayOf(1.2), doubleArrayOf(2.3)) 

也可以使用以下constructor嵌套多个数组初始化器:

 public inline constructor(size: Int, init: (Int) -> T) 

来电可以是这样的:

 val doubles2: Array<DoubleArray> = Array(2) { i -> DoubleArray(2) { j -> j + 1 * (i + 1).toDouble() } } //[[1.0, 2.0], [2.0, 3.0]] 

将来,您可以尝试使用Kotlin转换器。 我把你的代码,并通过转换器运行它,并得到了以下的工作代码,同意给出的答案。

 internal var json = "[[1.2, 4.1], [3.4, 4.4]]" internal var variable = Gson().fromJson(json, Array<DoubleArray>::class.java) 

你可以混合使用arrayOfdoubleArrayOf

 arrayOf( doubleArrayOf(1.2, 4.1) doubleArrayOf(3.4, 4.4) )