【问题标题】:I'm trying to make an ArrayList public(in java) so I can access it in a different class, what am I doing wrong?我正在尝试公开一个 ArrayList(在 java 中),以便我可以在不同的类中访问它,我做错了什么?
【发布时间】:2019-01-19 01:52:07
【问题描述】:

有一个错误,如果无法访问另一个类中的 ArrayList,我不确定应该做什么

package LifeGame;
import java.util.ArrayList;
public class Lists {

    public static void main(String[] args) {
    public ArrayList<String> tasks = new ArrayList<String>(); { // error on `tasks`
        tasks.add("Phone");
    }

    }
}

【问题讨论】:

  • public(或任何访问权限)修饰符不能在方法中使用。在方法外声明数组列表。
  • 邮政编码,而不是代码图像。你需要一个类成员而不是方法变量。
  • 方法中的变量不能有访问修饰符。
  • 此外,这里的块(add 周围的{})没有做任何有用的事情。看起来您尝试使用双括号初始化;你没有,但不要

标签: java arraylist


【解决方案1】:

方法中的变量只能在同一方法中通过名称访问。类成员——在方法之外定义的变量——是唯一可以是公共的、私有的等的。

【讨论】:

    【解决方案2】:

    您必须在方法之外将其声明为类成员

    package LifeGame;
    import java.util.ArrayList;
    public class Lists
    {
       public static ArrayList<String> tasks;
    
        public static void main(String[] args)
        {
            tasks =  new ArrayList<String>();
            tasks.add("Phone");
       }
    }
    

    所以你可以在任何地方使用它。例如:

    import java.util.ArrayList;
    
    public class Lists {
        public static ArrayList<String> tasks;
    
        public Lists() {
            tasks = new ArrayList<String>();
        }
        public void addTask(String task) {
            tasks.add(task);
        }
        public ArrayList<String> getTasks(){
            return tasks;
        }
        public void printTasks() {
            System.out.println(tasks);
        }
        public static void main(String[] args) {
            Lists l = new Lists();
    
            l.addTask("Phone");
            l.addTask("Clean");
            l.printTasks();
    
        }
    
    }
    

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      你的代码应该是:

      package LifeGame;
      import java.util.ArrayList;
      public class Lists {
      
        public static void main(String[] args) {
           ArrayList<String> tasks = new ArrayList<String>(); 
           tasks.add("Phone");    
        }
      }
      

      【讨论】:

        猜你喜欢
        • 2018-06-08
        • 2011-01-13
        • 1970-01-01
        • 2019-02-01
        • 2010-10-13
        • 1970-01-01
        • 2020-07-30
        • 1970-01-01
        • 2018-06-19
        相关资源
        最近更新 更多