当前位置: 首页 > 知识库问答 >
问题:

如何在类级别添加ArrayList?

岳景明
2023-03-14

我正在尝试制作一个DnD字符生成器,部分原因是我需要一个可以通过其他方法编辑的统计列表,所以我试图在类级别添加它。我目前的代码是:

public class CharacterCreator extends Application
{
    ArrayList<String> stats = new ArrayList<String>();

        stats.add("STR");
        stats.add("DEX");
        stats.add("CON");
        stats.add("INT");
        stats.add("WIS");
        stats.add("CHA");

public void start(Stage primaryStage)
{

但是当我试图运行它时,我在每个“添加”行都有一个“预期标识符”错误。

共有3个答案

喻高寒
2023-03-14

初始化块怎么样?

public class CharacterCreator extends Application {
    public ArrayList<String> stats = new ArrayList<String>();
    {
       stats.add("STR");
       stats.add("DEX");
       stats.add("CON");
       stats.add("INT");
       stats.add("WIS");
       stats.add("CHA");
    }
}
徐涵亮
2023-03-14

你不能在课堂上有这样的陈述。您需要在方法、构造函数或初始化块中填充数组:

public class CharacterCreator extends Application{
    ArrayList<String> stats;

    public CharacterCreator() {
         stats = new ArrayList<String>();
         stats.add("STR");
         stats.add("DEX");
         stats.add("CON");
         stats.add("INT");
         stats.add("WIS");
         stats.add("CHA");
    }
}

如果希望在类级别而不是对象级别定义统计信息,则需要添加静态初始化块:

public class CharacterCreator extends Application{
    static ArrayList<String> stats;

    static {
         stats = new ArrayList<String>();
         stats.add("STR");
         stats.add("DEX");
         stats.add("CON");
         stats.add("INT");
         stats.add("WIS");
         stats.add("CHA");
    }
}
岳迪
2023-03-14

您可以像这样初始化ArrayList

ArrayList

如答案所示。或者,只需将add调用放入方法或构造函数中,如下所示:

ArrayList<String> stats = new ArrayList<>();

// Adding to ArrayList inside a constructor
public CharacterCreator()
{
    stats.add("STR");
    stats.add("DEX");
}

 类似资料:
  • 我使用log4j2,我想给我所有的消息添加一个前缀。这个前缀被传递给构造函数参数,它取决于类的实例。所以我们在对象级别(不是类或线程)。 例如,我有一个实例化的类,就像一样,所以当我在这个类上使用时,就在消息之前编写。对于,将显示。 谢谢你的帮忙

  • 我正在尝试用标准的Python日志记录到文件来替换一种旧的记录信息的方法。该应用程序目前有一个日志文件,它被设置为捕获信息和调试消息,所以我希望它在一个较低的级别,而不是由主日志捕获。 应用程序结构: 在和中是对旧的函数的调用,我不希望将该函数记录在中,但也不希望它们出现在文件中。 理想的工作方式是创建一个带有调试函数的包装器,该函数在新的级别上进行日志记录,我已经了解到这需要的扩展。 因此,在中

  • 问题内容: 我正在尝试添加程序包级别的注释,但是我不知道如何执行此操作。示例被赞赏。 问题答案: 从文章摘要这里 在package-info.java中: 在PackageLevelAnnotation.java中 编辑:更多包级别信息。下面是在Java语言规格封装章链接:包

  • 问题内容: 在Elasticsearch中进行等效于SQL连接的最佳方法是什么? 我有一个带有两个大表的SQL安装程序:Persons和Items。一个人可以拥有 许多 物品。人员和项目行都可以更改(即更新)。我必须运行按人员和项目方面进行筛选的搜索。 在Elasticsearch中,您似乎可以使Person成为Item的嵌套文档,然后使用。 但是:如果您随后更新一个Person,我认为您需要更新

  • 问题内容: 当我打电话 这个孩子被添加到最后。有没有办法让这个新孩子成为第一个孩子? 问题答案: 如前所述,SimpleXML不支持该功能,因此您必须使用DOM。我的建议是:用程序中需要使用的任何内容扩展SimpleXMLElement。这样,您可以将所有DOM操作和其他XML魔术保留在实际程序之外。通过将两个问题分开,可以提高可读性和可维护性。 以下是使用新方法prependChild()扩展S

  • 这是A.java 我想得到Newa. java 我想使用javaparser添加一个变量。