java - 为什么静态对象作为参数传递给另一个类的构造函数时为 null

标签 java object static null

我正在用 Java 制作 2D 游戏。我有一个 Sprite 类和一个 Tile 类。首先,我在 Sprite 类中声明了一些静态 Sprite 对象

public class Sprite {   
public static Sprite grass = new Sprite(0, 0, Spritesheet.testTiles);
...

然后我在 Tile 类中声明静态 Tile 对象,并将静态 Sprite 对象作为参数传递,如下所示:

public class Tile {
public static Tile grass = new Tile("grass", Sprite.grass);
...

但是由于某种原因,我传递的 Sprite 为空。有什么想法吗?

每当我在其他地方使用草对象时,我都没有问题。

最佳答案

这完全符合预期,静态初始化发生在不同的事件上,而这些事件在分配之前都不会发生,因此静态属性无论如何都将为 null。

有关 Activity 的更多详细信息,请参阅这篇文章

Explanation of how classloader loads static variables

关于java - 为什么静态对象作为参数传递给另一个类的构造函数时为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44085194/

相关文章:

java - Android 应用程序内存限制适用于整个应用程序还是应用程序的每个进程?

java - Kibana 查询结果 _count 和 _search api 之间不匹配

java - 如何刷新 gradle 任务的目标

java - 如何修改 jbpm-console 应用程序以使其从数据库检索用户、角色和组列表?

c# - c#中的扩展方法和静态方法不匹配原型(prototype)匹配

javascript - 对象变成数组

java - 如何在 Java 中循环访问对象值

javascript - 获取不同类型的两个对象的相同部分

python - 值错误 : Missing staticfiles manifest entry for 'favicon.ico'

c++ - 静态内联方法?