微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

处理:函数“toArray()”需要这样的参数:“toArray(T[])”

如何解决处理:函数“toArray()”需要这样的参数:“toArray(T[])”

我有一些包含此哈希图的代码(为了简化,我删除了除 5 个以外的所有对):

HashMap<String,Integer> partiesColors = new HashMap<String,Integer>();
{
  partiesColors.put("None",color(0,0));
  partiesColors.put("KPÖ",color(170,0));
  partiesColors.put("PILZ",color(128,128,128));
  partiesColors.put("Grüne",color(81,165,30));
  partiesColors.put("SPÖ",color(227,30,45));
};

我正在尝试提取颜色以使用此行将它们全部组成一个数组:

color[] colorsOnly = partiesColors.values().toArray(new color[partiesColors.size()]);

但是 Processing (3.5.4) IDE 拒绝接受这一点,并用 The function "toArray()" expects parameters like: "toArray(T[])" 红线了 toArray 部分,尽管拼写法与我在网上找到的几个资源相同。我该怎么做?

解决方法

您可以创建一个 ArrayList(ArrayList 比 Array 更灵活)。

ArrayList<Integer> colors = new ArrayList<>();

for(int i = 0; i<=4; i++){

colors.add(partiesColors.get(i))
}

添加 HashMap 的前 5 个值,它们链接到索引。

你也可以试试这个:

Object[] colorArray = partiesColors.entrySet().toArray();
,

color 是处理 IDE 为 int 提供的语法糖

事实上,并没有真正的 color 类型或类;将脚本编译为 Java 时,预处理器会将 color 的所有用法转换为 int

因此您可以交替使用 intcolor,因此您的数组不必需要color 类型。

Integer[] colorsOnly = partiesColors.values().toArray(new Integer[partiesColors.size()]);
color col = colorsOnly[0];

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。