[英]Java weird ExceptionInInitializerError
I tried everything to get this code working, and I hope someone will save me.. 我尽一切努力使此代码正常工作,希望有人能救我。
I just want to initialize my Objects Street1 and Street2 which are in commentary right now. 我只想初始化当前在评论中的对象Street1和Street2。
The only way i found to make my code work is to initialize them like this : 我发现使我的代码正常工作的唯一方法是像这样初始化它们:
Street1 = new Objects[0]; Street1 =新对象[0];
Street2 = new Objects[0]; Street2 =新对象[0];
But i can't fill my Objects ! 但是我不能填补我的对象! I worked fine for days, but when i decided to move into a non-static class, it just gave my that error.. What's wrong please ?
我工作了好几天,但是当我决定进入一个非静态课程时,这只是给了我那个错误。.请问怎么了?
public class Maps {
int CurrentMapID ;
int CheckedObjetQuantity=0;
Map[] MapList = new Map[5];
Objects[] Street1;
Objects[] Street2;
Map CurrentMap;
public Maps(){
CurrentMapID = 1;
//Street1 = {new Objects(987,1020,1,2),new Objects(985,1036,3,75/*,true,3*/),new Objects(1259,1028,1,3),new Objects(3391,1036,1,1),new Objects(213,1013,102,1)}; // les Objets de la map Street1 (x,y,IDobjet,quantité)
//Street2 = {new Objects(1891,1011,1), new Objects (1847,1025,101)};
Street1 = new Objects[0];
Street2 = new Objects[0];
MapList[1]= new Map (1,4,2,Street1,(Main.InstallPath+"maps/street.png"),(Main.InstallPath+"maps/fstreet.png"),(Main.InstallPath+"maps/streetcollision.png"),50,800,3600,800);
MapList[2]= new Map (2,1,3,Street2,(Main.InstallPath+"maps/street2.png"),(Main.InstallPath+"maps/fstreet2.png"),(Main.InstallPath+"maps/street2collision.png"),50,800,3600,800);
MapList[3]= new Map (3,2,4,Street2,(Main.InstallPath+"maps/street2.png"),(Main.InstallPath+"maps/fstreet2.png"),(Main.InstallPath+"maps/street2collision.png"),50,800,3600,800);
MapList[4]= new Map (4,3,1,Street2,(Main.InstallPath+"maps/street2.png"),(Main.InstallPath+"maps/fstreet2.png"),(Main.InstallPath+"maps/street2collision.png"),50,800,3600,800);
CurrentMap = MapList[CurrentMapID];
}
So, this code works, the following won't work and i don't know why: 因此,此代码有效,以下代码不起作用,我也不知道为什么:
public class Maps {
int CurrentMapID ;
int CheckedObjetQuantity=0;
Map[] MapList = new Map[5];
Objects[] Street1 = {new Objects(987,1020,1,2),new Objects(985,1036,3,75/*,true,3*/),new Objects(1259,1028,1,3),new Objects(3391,1036,1,1),new Objects(213,1013,102,1)}; // les Objets de la map Street1 (x,y,IDobjet,quantité)
Objects[] Street2 = {new Objects(1891,1011,1), new Objects (1847,1025,101)};
Map CurrentMap;
public Maps(){
CurrentMapID = 1;
//Street1 = new Objects[0];
//Street2 = new Objects[0];
MapList[1]= new Map (1,4,2,Street1,(Main.InstallPath+"maps/street.png"),(Main.InstallPath+"maps/fstreet.png"),(Main.InstallPath+"maps/streetcollision.png"),50,800,3600,800);
MapList[2]= new Map (2,1,3,Street2,(Main.InstallPath+"maps/street2.png"),(Main.InstallPath+"maps/fstreet2.png"),(Main.InstallPath+"maps/street2collision.png"),50,800,3600,800);
MapList[3]= new Map (3,2,4,Street2,(Main.InstallPath+"maps/street2.png"),(Main.InstallPath+"maps/fstreet2.png"),(Main.InstallPath+"maps/street2collision.png"),50,800,3600,800);
MapList[4]= new Map (4,3,1,Street2,(Main.InstallPath+"maps/street2.png"),(Main.InstallPath+"maps/fstreet2.png"),(Main.InstallPath+"maps/street2collision.png"),50,800,3600,800);
CurrentMap = MapList[CurrentMapID];
}
It return this error : 它返回此错误:
Exception in thread "main" java.lang.ExceptionInInitializerError
at Maps.<init>(Maps.java:11)
at Main.main(Main.java:73)
Caused by: java.lang.NullPointerException
at Box.<init>(Box.java:65)
at Objects.<clinit>(Objects.java:16)
It looks like you want to create an array of Objects
objects, right? 看起来您想创建一个
Objects
对象数组,对吗?
You left out the code to construct the new array before defining its contents: 在定义其内容之前,您省去了构建新数组的代码:
Street2 = new Objects[] { new Objects(1891, 1011, 1), new Objects (1847, 1025, 101) };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.