当前位置: 首页 > 面试题库 >

不能添加到ArrayList“错位的构造”

沈思博
2023-03-14
问题内容

我建立了一个简单的arraylist,但是似乎无法向其中添加对象。

import java.util.ArrayList;


public class Inventory {

ArrayList inventory = new ArrayList();

String item1 = "Sword";
String item2 = "Potion";
String item3 = "Shield";

inventory.add(item1);
inventory.add(item2);
inventory.add(item3);
}

有两个错误,一个是清单和加法之间的点,另一个是括号之间的变量名,分别是

Syntax error on token(s), misplaced construct(s)

Syntax error on token "item1", VariableDeclaratorId expected after this token

谁能解释为什么会这样?


问题答案:

您的代码不起作用的原因是您试图在类主体中编写代码。可执行语句应该用静态初始化程序,方法或构造函数编写(就像我在下面的示例中所做的那样)。

试试这个:

public class Inventory {

    private List inventory = new ArrayList();

    public Inventory() {

        String item1 = "Sword";
        String item2 = "Potion";
        String item3 = "Shield";

        inventory.add(item1);
        inventory.add(item2);
        inventory.add(item3);
    }
}

inventory在类主体中定义了类成员,并就地(= new ArrayList();)对其进行了初始化。那里没有编译器错误,因为在类主体中允许声明。我放入构造函数中的其余代码将inventory使用值进行初始化。我可以将其放在方法中,但我选择了构造函数,因为其通常的作用是初始化类成员。



 类似资料:
  • 问题内容: 我正在尝试将字符串添加到Java中的ArrayList中,但似乎无法正常工作。 目前,我有以下代码: 为什么会出现以下错误: 令牌““披萨””上的语法错误,请删除此令牌 令牌语法错误,构造放置错误 问题答案: 您必须在函数中使用,例如: 希望有所帮助

  • “Bericht”对象的单独类文件的一部分(荷兰语表示消息,包含一个字符串和两个日期): 在我的主方法的某个地方,我从这个类中创建新对象: 方法“printberichten”迭代数组列表并打印所有消息 getBericht getter方法: 因此,如果我创建一个新对象,我之前的所有对象都应该显示在text Area中,但我似乎只创建了我的类的一个实例。 在命令“lijst.add(this)”

  • 问题内容: 我试图将ArrayList添加到Jlist,但我给出的唯一理解是编写这样的代码: 让我感到困惑的是,为什么我不能像这样直接将ArrayList直接添加到Jlist中: 提前致谢。 问题答案: 包含“ helper”构造函数的目的是使使用简单数据结构更加容易。 的(和许多Swing组件)实际上是指与提供实际数据视图模型中使用。 原始设计可以追溯到将Swing纳入主库之前(在JDK 1.3

  • 问题内容: 我试图将ArrayList添加到Jlist,但我给出的唯一理解是编写这样的代码: 让我感到困惑的是,为什么我不能像这样直接将ArrayList直接添加到Jlist中: 提前致谢。 问题答案: 包含“ helper”构造函数的目的是使使用简单数据结构更加容易。 的(和许多Swing组件)实际上是指与提供实际数据视图模型中使用。 原始设计可以追溯到将Swing纳入主库之前(在JDK 1.3

  • 但是,后来当我试图将整数添加到正确的“内部”数组列表中时,我无法将整数添加到ArrayList类型的位置中。我还得到一个索引超出界限的错误。 解决这个问题的方法是将整数强制转换为ArrayList类型,但这意味着我将在内部数组列表中添加一个数组列表,这不是我想要的。我想在正确的“内部”ArrayList中添加一个int。

  • 在java中,我试图添加一对相加到一定数量的数组,我尝试的方法之一是在HashMap中创建一个双ArrayList。如果我在列表中添加1和2,我将得到3作为键。例如: 输出如下所示 如果我再加一对 但是我一直得到一个'方法不适用于HashMap类型 我也试过了 我想我可能需要先初始化更大的矩阵,但遗憾的是,我最终还是出现了同样的错误。