Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在类级别添加ArrayList?_Java_Arraylist - Fatal编程技术网

Java 如何在类级别添加ArrayList?

Java 如何在类级别添加ArrayList?,java,arraylist,Java,Arraylist,我正在尝试制作一个DnD字符生成器,其中一部分我需要一个可以被其他方法编辑的统计列表,所以我尝试在类级别添加它。我目前的代码是: public class CharacterCreator extends Application { ArrayList<String> stats = new ArrayList<String>(); stats.add("STR"); stats.add("DEX"); stats

我正在尝试制作一个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)
{
公共类CharacterCreator扩展应用程序
{
ArrayList stats=新的ArrayList();
添加统计数据(“STR”);
添加统计数据(“DEX”);
添加统计数据(“CON”);
添加(“INT”);
添加统计数据(“WIS”);
添加(“CHA”);
公共无效开始(阶段primaryStage)
{

但是当我尝试运行它时,在每一个“add”行上都会出现一个“identifier expected”错误。

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

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");
    }
}
公共类CharacterCreator扩展应用程序{
ArrayList统计;
公共角色创建者(){
stats=newarraylist();
添加统计数据(“STR”);
添加统计数据(“DEX”);
添加统计数据(“CON”);
添加(“INT”);
添加统计数据(“WIS”);
添加(“CHA”);
}
}
如果希望在类级别而不是对象级别定义统计信息,则需要添加静态初始化块:

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");
    }
}
公共类CharacterCreator扩展应用程序{
静态数组列表统计;
静止的{
stats=newarraylist();
添加统计数据(“STR”);
添加统计数据(“DEX”);
添加统计数据(“CON”);
添加(“INT”);
添加统计数据(“WIS”);
添加(“CHA”);
}
}

类主体中不能有类似的裸语句。需要在方法、构造函数或初始化块中填充数组:

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");
    }
}
公共类CharacterCreator扩展应用程序{
ArrayList统计;
公共角色创建者(){
stats=newarraylist();
添加统计数据(“STR”);
添加统计数据(“DEX”);
添加统计数据(“CON”);
添加(“INT”);
添加统计数据(“WIS”);
添加(“CHA”);
}
}
如果希望在类级别而不是对象级别定义统计信息,则需要添加静态初始化块:

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");
    }
}
公共类CharacterCreator扩展应用程序{
静态数组列表统计;
静止的{
stats=newarraylist();
添加统计数据(“STR”);
添加统计数据(“DEX”);
添加统计数据(“CON”);
添加(“INT”);
添加统计数据(“WIS”);
添加(“CHA”);
}
}

正如@shmosel刚刚说的,你不能在方法外运行语句。你可以创建一个初始化器方法,并在构造函数中调用它,或者将指令移动到构造函数中。add方法被认为是未知的,因此无法解析。

正如@shmosel刚刚说,你不能在方法外运行语句。你可以创建一个初始化器m方法,并在构造函数中调用它,或将指令移动到构造函数中。add方法被认为是未知的,因此无法解析

在声明类时不能调用
add()
方法。请在构造函数中使用
静态
块或调用方法

public class CharacterCreator extends Application {

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

    public CharacterCreator() {
        stats.add("STR");
        stats.add("DEX");
        stats.add("CON");
        stats.add("INT");
        stats.add("WIS");
        stats.add("CHA");
    }

    public void start(Stage primaryStage) {

    }
}
公共类CharacterCreator扩展应用程序{
ArrayList stats=新的ArrayList();
公共角色创建者(){
添加统计数据(“STR”);
添加统计数据(“DEX”);
添加统计数据(“CON”);
添加(“INT”);
添加统计数据(“WIS”);
添加(“CHA”);
}
公共无效开始(阶段primaryStage){
}
}
在声明类时不能调用
add()
方法。请在构造函数中使用
static
块或调用方法

public class CharacterCreator extends Application {

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

    public CharacterCreator() {
        stats.add("STR");
        stats.add("DEX");
        stats.add("CON");
        stats.add("INT");
        stats.add("WIS");
        stats.add("CHA");
    }

    public void start(Stage primaryStage) {

    }
}
公共类CharacterCreator扩展应用程序{
ArrayList stats=新的ArrayList();
公共角色创建者(){
添加统计数据(“STR”);
添加统计数据(“DEX”);
添加统计数据(“CON”);
添加(“INT”);
添加统计数据(“WIS”);
添加(“CHA”);
}
公共无效开始(阶段primaryStage){
}
}

您可以像这样初始化
数组列表

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

// Adding to ArrayList inside a constructor
public CharacterCreator()
{
    stats.add("STR");
    stats.add("DEX");
}
ArrayList stats=新的ArrayList(Arrays.asList(“STR”、“DEX”);

如.Or所示,只需将add调用放入方法或构造函数中,如下所示:

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

// Adding to ArrayList inside a constructor
public CharacterCreator()
{
    stats.add("STR");
    stats.add("DEX");
}
ArrayList stats=new ArrayList();
//在构造函数中添加到ArrayList
公共角色创建者()
{
添加统计数据(“STR”);
添加统计数据(“DEX”);
}

您可以像这样初始化
数组列表

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

// Adding to ArrayList inside a constructor
public CharacterCreator()
{
    stats.add("STR");
    stats.add("DEX");
}
ArrayList stats=新的ArrayList(Arrays.asList(“STR”、“DEX”);

如.Or所示,只需将add调用放入方法或构造函数中,如下所示:

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

// Adding to ArrayList inside a constructor
public CharacterCreator()
{
    stats.add("STR");
    stats.add("DEX");
}
ArrayList stats=new ArrayList();
//在构造函数中添加到ArrayList
公共角色创建者()
{
添加统计数据(“STR”);
添加统计数据(“DEX”);
}

初始化块怎么样

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");
    }
}
公共类CharacterCreator扩展应用程序{
public ArrayList stats=new ArrayList();
{
添加统计数据(“STR”);
添加统计数据(“DEX”);
添加统计数据(“CON”);
添加(“INT”);
添加统计数据(“WIS”);
添加(“CHA”);
}
}

初始化块怎么样

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");
    }
}
公共类CharacterCreator扩展应用程序{
public ArrayList stats=new ArrayList();
{
添加统计数据(“STR”);
添加统计数据(“DEX”);
添加统计数据(“CON”);
添加(“INT”);
添加统计数据(“WIS”);
添加(“CHA”);
}
}

您不能在方法之外运行语句。请将它们移动到构造函数。您不能在方法之外运行语句。请将它们移动到构造函数。我认为OP正在寻找静态块初始化,因为
类级别提到了
我认为OP正在寻找静态块初始化,因为
类级别提到了操作,sorry先生起来了!我太晚了:)哦,对不起先生起来了!我太晚了:)