有没有办法在主方法之外声明我的arraylist?下面的代码给我一个错误,说“语法错误,令牌”;“,@预期。”
import java.util.ArrayList;
public class ArrayListPractice {
static ArrayList<Integer> x = new ArrayList<Integer>();
x.add(0);
x.add(50);
x.add(100);
public static void main(String args[]){
System.out.println(x);
}
}
如果我在main方法中包含所有语句然后它可以工作并将数组打印到控制台,我可以解决这个问题。问题是数组在较大程序中不可用于其他方法。例如,在下面的代码中,x无法解析。
import java.util.ArrayList;
public class ArrayListPractice {
static void printSecondElement(){
System.out.println(x.get(1));
}
public static void main(String args[]){
ArrayList<Integer> x = new ArrayList<Integer>();
x.add(0);
x.add(50);
x.add(100);
System.out.println(x);
printSecondElement();
}
}
我该如何解决这个问题?最好的答案将解释如何以两种方式做到这一点。这是通过在main方法中声明arraylist而不是main方法之外,同时确保x可用于其他方法。虽然我很感激任何答案,特别是如果它只能以一种方式做到这一点。
答案 0 :(得分:5)
这将有效
import java.util.ArrayList;
public class ArrayListPractice {
public static ArrayList<Integer> x = new ArrayList<Integer>();
static void printSecondElement(){
System.out.println(x.get(1));
}
public static void main(String args[]){
x.add(0);
x.add(50);
x.add(100);
System.out.println(x);
printSecondElement();
}
}
如果要将所有代码移到main方法之外,则需要使用静态初始化程序
import java.util.ArrayList;
public class ArrayListPractice {
public static ArrayList<Integer> x = new ArrayList<Integer>();
static {
x.add(0);
x.add(50);
x.add(100);
}
static void printSecondElement(){
System.out.println(x.get(1));
}
public static void main(String args[]){
System.out.println(x);
printSecondElement();
}
}
答案 1 :(得分:1)
不,你不能在方法之外添加元素。但是,您创建了一个静态方法,可以为您添加元素。
public static void addElement(int i){
x.add(i);
}
这样您就可以将元素作为参数传递。
答案 2 :(得分:1)
这应该可以正常工作:
import java.util.ArrayList;
public class ArrayListPractice
{
static ArrayList<Integer> x = new ArrayList<Integer>();
static void printSecondElement()
{
System.out.println(x.get(1));
}
public static void main(String args[])
{
x.add(0);
x.add(50);
x.add(100);
System.out.println(x);
printSecondElement();
}
}
答案 3 :(得分:1)
原因是x.add(0)
是一个处理/执行语句,应该放在main
之类的方法中。
像ArrayList<Integer> x
这样的声明语句可以放在方法之外,但应该放在类中。
答案 4 :(得分:0)
阅读有关类的java教程。您可以在类字段中保存信息,然后可以从类方法访问它。 例如:Oracle tutorial
答案 5 :(得分:0)
另一种方法是包括一个构造函数并在其中添加数据。当然,您将必须初始化obj这样的类;
import java.util.ArrayList;
public class ArrayListPractice {
static ArrayList<Integer> x = new ArrayList<Integer>();
public ArrayListPractice() {
x.add(0);
x.add(50);
x.add(100);
}
public static void main(String args[]){
ArrayListPractice obj = new ArrayListPractice();
System.out.println(x);
}
}