私はこのコードを機能させるためにあらゆることを試みました、そして誰かが私を救ってくれることを願っています。
現在解説されているObjectsStreet1とStreet2を初期化したいだけです。
私が自分のコードを機能させるために見つけた唯一の方法は、次のようにそれらを初期化することです:
Street1=新しいオブジェクト[0];
Street2=新しいオブジェクト[0];
しかし、オブジェクトを埋めることができません!私は何日もうまく働いていましたが、非静的クラスに移動することを決めたとき、それはちょうど私のエラーを与えました..何が問題なのですか?
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];
}
したがって、このコードは機能しますが、以下は機能しません。理由はわかりません。
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];
}
このエラーを返します:
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)