Java 首次访问静态arraylist
我有一个静态数组列表:Java 首次访问静态arraylist,java,arraylist,Java,Arraylist,我有一个静态数组列表: public class Global { public static ArrayList<Player> Round; } 它会使应用程序崩溃。我很有信心lPlayer是正确成型的。这一行是在添加新玩家时调用的,所以我不知道这是否是我第一次调用.add,但这不重要,对吗 错误是“InvocationTargetException.(Throwable)行:50” 有什么问题吗 谢谢。您必须像下面这样初始化圆形对象。否则会得到NUllPoin
public class Global {
public static ArrayList<Player> Round;
}
它会使应用程序崩溃。我很有信心lPlayer是正确成型的。这一行是在添加新玩家时调用的,所以我不知道这是否是我第一次调用.add,但这不重要,对吗
错误是“InvocationTargetException.(Throwable)行:50”
有什么问题吗
谢谢。您必须像下面这样初始化圆形对象。否则会得到NUllPointerException
public class Global {
public static ArrayList<Player> Round = new ArrayList<>();
}
公共类全局{
public static ArrayList Round=new ArrayList();
}
您必须像下面这样初始化圆形对象。否则会得到NUllPointerException
public class Global {
public static ArrayList<Player> Round = new ArrayList<>();
}
公共类全局{
public static ArrayList Round=new ArrayList();
}
阅读异常堆栈跟踪的其余部分,您可能会发现异常的原因是NullPointerException
ArrayList在实例化之前并不存在,就像任何对象一样。无论它是静态的还是非静态的,都不会改变任何东西。阅读异常堆栈跟踪的其余部分,您可能会发现异常的原因是NullPointerException ArrayList在实例化之前并不存在,就像任何对象一样。不管它是静态的还是非静态的,都不会改变任何东西。你是说: 不实例化静态数组 你在哪里找到的 您需要实例化一个实例字段,它是
静态的
或非静态的
。它们之间唯一的区别是:静态
字段与类
相关联,而不是与任何对象
相关联。class
的每个实例都共享一个class
变量,该变量位于内存中的一个固定位置
您尚未初始化数组列表循环
。因此,创建它:
public static ArrayList<Player> Round = new ArrayList<>();
publicstaticarraylistround=newarraylist();
您的意思是:
不实例化静态数组
你在哪里找到的
您需要实例化一个实例字段,它是静态的
或非静态的
。它们之间唯一的区别是:静态
字段与类
相关联,而不是与任何对象
相关联。class
的每个实例都共享一个class
变量,该变量位于内存中的一个固定位置
您尚未初始化数组列表循环
。因此,创建它:
public static ArrayList<Player> Round = new ArrayList<>();
publicstaticarraylistround=newarraylist();
您是否在全局中初始化了轮?如果您看起来稍微好一点,实际错误可能是由于未初始化静态字段而导致的NullPointerException
。您是否在全局中初始化了轮?如果您看起来稍微好一点,实际错误可能是NullPointerException
,这是由于没有初始化静态字段引起的。另外,这里还有一个大警告:这段代码不是线程安全的!您正在访问非线程安全结构(ArrayList
),而不进行同步。如果另一个线程出现并读取或写入Global.Round
列表,事情可能会以微妙、难以调试的方式出现。此外,这里还有一个大警告:此代码不是线程安全的!您正在访问非线程安全结构(ArrayList
),而不进行同步。如果另一个线程出现并读取或写入Global.Round
列表,事情可能会以微妙的、难以调试的方式破裂。这可能是我梦寐以求的。这对我来说毫无意义,所以我很高兴听到我错了。我放置了一个publicstaticarraylistround=newarraylist()代码>在全局类def和I gt中,警告ArrayList是原始类型。对泛型类型ArrayList的引用应参数化。这可以吗?@ddk,泛型集合类(如ArrayList
here)类型应该使用我们希望集合包含其元素的类类型参数化。因此,在创建它时,我们编写newarraylist()
,这是合适的。但是从java 7中,只有一个菱形操作符:
就足够了,这就是新的ArrayList()
@ddk,作为一个新用户,欢迎使用stack overflow。要使用此站点,请检查热备份。谢谢你,塞奇,谢谢你的欢迎。我用错网站了吗?@ddk,不,不,我不是这个意思。我是说,还有其他答案,包括我的。读它们。你应该通过点击勾号来接受答案,勾号最能满足你的问题。答案完全由你选择:)我可能是在做梦。这对我来说毫无意义,所以我很高兴听到我错了。我放置了一个publicstaticarraylistround=newarraylist()代码>在全局类def和I gt中,警告ArrayList是原始类型。对泛型类型ArrayList的引用应参数化。这可以吗?@ddk,泛型集合类(如ArrayList
here)类型应该使用我们希望集合包含其元素的类类型参数化。因此,在创建它时,我们编写newarraylist()
,这是合适的。但是从java 7中,只有一个菱形操作符:
就足够了,这就是新的ArrayList()
@ddk,作为一个新用户,欢迎使用stack overflow。要使用此站点,请检查热备份。谢谢你,塞奇,谢谢你的欢迎。我用错网站了吗?@ddk,不,不,我不是这个意思。我是说,还有其他答案,包括我的。读它们。你应该通过点击勾号来接受答案,勾号最能满足你的问题。答案完全由您选择:)