我目前正在编写文本编辑器。我有一个完整的GUI工作,现在我正在尝试增加它的可用性。
出于某种原因,当我尝试创建一个名为symbols的数组时,NetBeans很好用 - 当我尝试为数组赋值时,NetBeans不会编译我的程序,而是会出错并且建议它为数组创建一个新类。
示例代码:
String[] symbols = new String[42]; symbols[0] = "∑"; // Error line!
这是一张图片:http://img401.imageshack.us/img401/4844/examplegx.png
有没有人知道修复此问题的解决方案或是否发生了这种情况?如果我需要提供更多细节,请告诉我。
答案 0 :(得分:8)
您试图直接在类声明中放置一个任意语句,而不是在方法,构造函数或初始化程序块中。你不能这样做。
一些选项:
在构造函数中执行:
public GUI()
{
symbols[0] = "∑";
}
在初始化程序块中执行:
String[] symbols = new String[42];
{
symbols[0] = "∑";
}
在初始化程序调用的方法中执行:
String[] symbols = getDefaultSymbols();
private static String[] getDefaultSymbols()
{
String[] ret = new String[42];
ret[0] = "∑";
return ret;
}
使用数组初始值设定项:
String[] symbols = { "∑", null, null, null, ... };
请注意,您的问题就像Netbeans应该受到指责一样。它不是Netbeans - 它是Java语言规则。您的代码在Eclipse,javac,IntelliJ等下无效。
答案 1 :(得分:3)
您不能将代码放在方法或初始化程序块之外。你能做的是;
String[] symbols = new String[42]; { symbols[0] = "∑"; }
您也可以这样定义符号
String[] symbols = "∑,+,-,/,*,^".split(",");