我正在尝试创建一个类,它将名称的文本文件读入数组,然后将该数组返回给主类。但是,我在尝试定义数组时遇到错误。
public class Test{
String[] foo;
String[] zoo;
String[] yoo;
}
我在String [] yoo
上收到错误Syntax error on token ";", { expected after this
token
我真的不知道发生了什么,有人可以帮忙吗?
编辑 - 代码的实际部分
String[] swords;
String[] prefix;
String[] suffix;
String[] rarity;
String[] colors = {"2","3","4","5","6","7","9","a","b","c","d","e","f"};
String[] bows = new String[3];
String[] enchantments = {"Frost","Igniton","Projection","Explosion","Enhance Jump","Enhance Speed","Resist Flames","Invisibility"};
rarity = new String[1000];
swords = new String[1000];
bows = new String[1000];
prefix = new String[1000];
suffix = new String[1000];
答案 0 :(得分:2)
您不能将值分配给字段声明或块(或构造函数)之外的字段。所以这一行
rarity = new String[1000];
(和其他类似的)应该在构造函数中,或者声明也应该初始化字段:
String[] rarity = new String[1000];
答案 1 :(得分:1)
除非您发布所有代码,否则无法确定答案是否正确。
但我猜你有这个:
rarity = new String[1000];
swords = new String[1000];
bows = new String[1000];
prefix = new String[1000];
suffix = new String[1000];
在方法之外。这在Java中是不可能的。
请改为:
String[] rarity = new String[1000];
或在方法/构造函数
中初始化字段答案 2 :(得分:1)
你不应该在构造函数或方法之外初始化
错:
public Test{
String[] rarity;
String[] swords;
rarity = new String[1000];
swords = new String[1000];
}
你可以这样做
public Test{
String[] rarity = new String[1000];
String[] swords = new String[1000];
}
如果变量是静态的,您可以使用static
块
public Test{
private static int x;
static{
x=2;
}
}
使用构造函数来初始化:
public Test{
String[] swords;
String[] prefix;
String[] suffix;
String[] rarity;
String[] colors = {"2","3","4","5","6","7","9","a","b","c","d","e","f"};
String[] bows = new String[3];
String[] enchantments = {"Frost","Igniton","Projection","Explosion","Enhance Jump","Enhance Speed","Resist Flames","Invisibility"};
public Test(){
rarity = new String[1000];
swords = new String[1000];
bows = new String[1000];
prefix = new String[1000];
suffix = new String[1000];
}
}
这就是全部
答案 3 :(得分:0)
首先,您应该将它们设为public
或private
(除非您确实需要将其设为包私有)。
像这样创建一个数组:
Type[] variableName = new Type[length];
length
是数组的大小,例如String[] test = new String[5]
可以包含5个字符串。要设置它们,请使用test[i] = someString;
,其中i
是索引(从0开始,以长度结束 - 1)。
如果您不希望限制数组,但是使用更多内存,也可以创建一个ArrayList。
ArrayList<Type> variableName = new ArrayList<>();
例如:
ArrayList<String> test = new ArrayList<>();
要添加到其中,请使用test.add(someString)
并获取:arrayList.get(i)
其中i
是索引。
ArrayList
的一个缺点是原始类型(int
,byte
,boolean
,...)无法使用。您需要使用Integer
,Byte
,Boolean
,...
如果您有ArrayList<Integer>
,则可以intArrayList.add(5)
,因为自动装箱会将5转换为new Integer(5)
。