以下是代码。我在这一行中遇到错误
Paint[] p=new Paint[]{cols};
但如果我使用
Paint[] p=new Paint[]{cols[1]};
它不会出错。
Color[] cols = new Color[n];
for (int i = 0; i < n; i++)
{
cols[i] = Color.getHSBColor((float) i / n, 1, 1);
}
Paint[] p=new Paint[]{cols};
return cols;
答案 0 :(得分:2)
p
是Paint
的数组。 cols
是另一个数组。 p
无法包含cols
,因为p
中的对象必须是Paint
,而不是数组。
如果您想将cols
的内容放入p
,您可以这样做:
Paint[] p = new Paint[cols.length]; // create a new array with the same length as `cols`
System.arraycopy(cols, 0, p, 0, cols.length); // copy the contents
相当于迭代数组的长度并复制每个元素。
但是如果你真的想要一个cols
数组,我不知道你为什么要拥有Paint
数组。你可以这样做:
Paint[] p = new Paint[n];
for (int i = 0; i < n; i++) {
p[i] = Color.getHSBColor((float) i / n, 1, 1);
}