Java 如何在类级别添加ArrayList?
我正在尝试制作一个DnD字符生成器,其中一部分我需要一个可以被其他方法编辑的统计列表,所以我尝试在类级别添加它。我目前的代码是: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
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先生起来了!我太晚了:)哦,对不起先生起来了!我太晚了:)