【问题标题】:Java HashMap not working in Processing [closed]Java HashMap在处理中不起作用[关闭]
【发布时间】:2016-01-20 15:26:16
【问题描述】:

我正在尝试在处理中做一个简单的 Java HashMap。

我看不出有什么问题,但我仍然遇到错误。

//for hashmap (dictionary)
import java.util.Map;
import java.util.HashMap;

//scales
HashMap<String,String> scalesList = new HashMap<String,String>();
scalesList.put("C Maj","cmaj.xml");

These are the errors I'm getting.

任何帮助都会很棒。

提前致谢, 卢克

【问题讨论】:

  • 请发帖MCVE。请注意,这不应该是你的全部草图,但它应该包括我们需要复制并粘贴到我们自己的机器上以重复问题的所有代码。
  • 您应该在问题中发布您的代码,而不是使用外部链接。只需添加 4 个空格即可开始每一行。
  • @PeterLawrey 这不是 Java。是处理。注意标签。
  • @KevinWorkman 我注意到第一个标签是[java],应该删除它吗?
  • @PeterLawrey 这很复杂。 Processing 使用了很多 Java 语法,实际上它是用 Java 编写的。但并非所有 Java 规则都适用于处理。新手处理开发人员以及经验丰富的 Java 开发人员可能会感到困惑。我不知道 Stack Overflow 标签的解决方案是什么。查看processing 标记,了解有多少也标记了Java。甚至可能值得进行元讨论。

标签: java dictionary hashmap processing


【解决方案1】:

你只能在方法之外有声明,而不是语句:

HashMap<String, String> sl = new HashMap<String, String>(); //this is a declaration
sl.put("C Maj", "cmaj.xml"); //this is a statement, it needs to be inside a method!

相反,您必须将语句放入方法中,如下所示:

HashMap<String, String> sl = new HashMap<String, String>();

void setup(){
   size(500, 500);
   sl.put("C Maj", "cmaj.xml");
}

【讨论】:

  • 立即排序。非常感谢!非常感谢。
  • @PeterLawrey 这是处理,而不是 Java。方法和字段在 sketch 中,不一定是类。
  • @user3277329 没问题。将来您真的应该尝试在问题本身中发布MCVE,而不是您的代码和错误的图片。如果您编辑帖子以包含 MCVE,您可能会获得更少的反对票和接近票。
  • 处理是否支持{ } 初始化块?
  • @PeterLawrey 是的。事实上,由于 Processing “编译”为 Java,它几乎支持 Java 所做的一切。它只是消除了类、主要方法和事件等所需的大量样板文件。但是,大多数处理代码都使用setup() 函数来处理这样的事情,所以我不确定初始化块是否适合这里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
相关资源
最近更新 更多