首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在类级别添加ArrayList?

如何在类级别添加ArrayList?
EN

Stack Overflow用户
提问于 2018-06-02 07:19:58
回答 5查看 1.2K关注 0票数 1

我正在尝试制作一个DnD字符生成器,其中一部分我需要有一个可由其他方法编辑的统计信息列表,所以我尝试在类级别添加它。我当前的代码是:

代码语言:javascript
复制
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)
{

但是当我尝试运行它时,在每个'add‘行上都会得到一个"identifier expected“错误。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-06-02 07:27:51

您可以按如下方式初始化ArrayList

ArrayList<String> stats = new ArrayList<>(Arrays.asList("STR", "DEX"));

this answer所示。或者,将add调用放在一个方法或构造函数中,如下所示:

代码语言:javascript
复制
ArrayList<String> stats = new ArrayList<>();

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

Stack Overflow用户

发布于 2018-06-02 07:23:32

你不能在类体中有这样的空洞的语句。您需要在方法、构造函数或初始化块中填充数组:

代码语言:javascript
复制
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");
    }
}

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

代码语言:javascript
复制
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");
    }
}
票数 3
EN

Stack Overflow用户

发布于 2018-06-02 07:32:04

那么初始化块呢?

代码语言:javascript
复制
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");
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50652061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档