0

我正在学习使用 JMonkey api 构建表面。该类Surface有一个方法

 createNurbsSurface(controlPoints, nurbKnots, uSegments, vSegments, basisUFunctionDegree, basisVFunctionDegree). 

我试图做一个简单的例子来理解论点的含义。但是,我无法初始化第二个参数:

List<Float>[] nurbKnots

我试过了:

List<Float>[] nurbKnots = {new ArrayList<Float>()};

但它抱怨你不能创建一个通用数组List<Float>.

有人可以告诉我如何初始化这个nurbKnots.

4

2 回答 2

0

它适用于非泛型List

List[] listNonGeneric = new ArrayList[10];

但这不起作用:

List<Float>[] listGeneric = new ArrayList<Float>[10];

你必须使用:

List<List<Float>> nurbKnots = new ArrayList<>();

并将参数传递为

(List<Float>[])nurbKnots.toArray();
于 2013-04-21T15:50:44.630 回答
0

一位朋友帮忙。他告诉我:

在 Java 中,实际上不可能(安全地)拥有泛型类型的数组。您必须允许未经检查的分配。就像是:

@SuppressWarnings("unchecked")
List<Float>[] f = new List[2];
f[0] = new ArrayList<Float>();
f[0].add(0.1);
f[1] = new ArrayList<Float>();
f[1].add(0.2);

但是,它奏效了!

于 2013-04-22T08:46:07.277 回答