gpt4 book ai didi

对象的 add() 方法的 Java ArrayList 不起作用

转载 作者:行者123 更新时间:2023-11-30 08:29:17 24 4
gpt4 key购买 nike

我是 JAVA 的新手,我正面临初学者的问题,我知道:-P

用简单的英语 => 我正在尝试创建对象的 ArrayList,并在需要时在数组中添加新对象。

好的,这是我的代码的精简版

package ACP.Employee;   //created package
import java.util.ArrayList; //imported arraylist class
import ACP.Employee.EmployeeClass; //imported employee class of same package

public class ClientClass
{
ArrayList<EmployeeClass> empArray = new ArrayList<EmployeeClass>(); //created a new Array List

public static void main (String[] args)
{
int objcount = 0; //variable to store objct count

empArray.add(objcount, EmployeeClass obj);
}
}

IDE (Eclipse) 在 empArray.add 行给我以下错误

  • 不能对非静态 empArray 进行静态引用
  • EmployeeClass 不能解析为变量
  • token 对象语法错误,删除此 token 。

我还尝试用以下语法替换该行,

empArray.add(new EmployeeClass());

但是以下错误仍然存​​在。

  • 不能对非静态 empArray 进行静态引用

请帮帮忙,我看过ArrayList的add()方法的API规范,如下:::

void add(int index, Object element) ==>> Inserts the specified element at the specified position index in the list boolean add(Object o) ==>> Appends the specified element to the end of this list. SOURCE (http://www.tutorialspoint.com/java/java_arraylist_class.htm)

最佳答案

您的代码有两个问题。

  1. 您正在尝试访问类 ClientClass 的成员来自静态上下文(主要)。这只有在该成员是静态的情况下才有可能。自 empArray没有modifiers它将默认为非静态的 package-private。您要么必须通过将其声明为静态来使其在静态上下文中可访问:

    static ArrayList<EmployeeClass> empArray = new ArrayList<>();

    或者创建一个ClientClass的实例并访问它的成员

    ArrayList<EmployeeClass> empArray = new ArrayList<EmployeeClass>();

    public static void main(String[] args) {
    ClientClass t = new ClientClass();
    t.empArray.add(new Employee());

    }
  2. 将员工传递到要添加的列表的方式不会在 java 中编译。这是一个 good tutorial关于如何在java中创建对象。事实上,您似乎是 Java 的新手,所以我建议您从教程的第一页开始,它们非常有助于快速熟悉这门语言,并且您很快就会提高工作效率。

关于对象的 add() 方法的 Java ArrayList 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19527687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com