2015-05-04 58 views
0

有什么方法可以在主方法之外声明我的数组列表吗?下面的代码给了我一个错误,说“语法错误,在标记上”;“,@预计”。将元素添加到主方法之外的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); 
    } 

} 

我能解决这个问题,如果我有我的主要方法中的所有语句,然后它的工作原理,并打印出的阵列控制台。问题是该数组在其他更大的程序中不可用。例如在下面的代码中,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对其他方法可用。虽然我会很感激任何答案,特别是如果只能以一种方式做到这一点。

回答

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(); 
     } 

    } 

如果要移动的所有代码主要方法外,你需要使用一个静态初始化

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(); 
     } 

    } 
0

阅读关于类的java教程。您可以在类字段中保存信息,然后可以从类方法中获取信息。 例如:Oracle tutorial

1

不,您不能在方法外添加元素。但是,您可以创建一个静态方法来为您添加元素到数组中。

public static void addElement(int i){ 
    x.add(i); 
} 

这样你就可以传递一个元素作为参数。

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(); 
    } 
} 
1

原因是x.add(0)是一个处理/执行声明,应该把我没有像main这样的方法。 像ArrayList<Integer> x这样的声明语句可以放在方法之外,但是应该放在类里面。

相关问题