NullPointerException Tableau Java
Résolu
TriiNoxYs
Messages postés
182
Date d'inscription
Statut
Membre
Dernière intervention
-
TriiNoxYs Messages postés 182 Date d'inscription Statut Membre Dernière intervention -
TriiNoxYs Messages postés 182 Date d'inscription Statut Membre Dernière intervention -
Salut ! Je suis actuellement entrain de coder un plugin Mincraft sous Spigot 1.8.7 qui ressemble un peu à un de genre BuildingGame ou BuildBattle (Hypixel) et j'ai une erreur NullPointerException sur un tableau. La plupart du temps ça vient du fait qu'on ecrit "int[] tab;" au lieu de "int[] tab = new int[8];" mais dans mon cas j'ai bien déclaré mon tableau. Je pense que c'est un petit probleme tout con mais je vois vraiment pas ^^
J'ai vu sur StackOverflow que si on met le tableau hors du constructeur ça règle ce problème mais ça m'embête vraiment de faire ca :/
Code d'erreur:
Code:
Merci d'avance à ceux qui me répondront et m'aideront :)
Cordialement,
TriiNo'
J'ai vu sur StackOverflow que si on met le tableau hors du constructeur ça règle ce problème mais ça m'embête vraiment de faire ca :/
Code d'erreur:
[12:19:23] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to BuildTime v0.3 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:227) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:194) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:190) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:694) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:52) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:1) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [?:1.7.0] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [?:1.7.0] at java.util.concurrent.FutureTask.run(FutureTask.java:166) [?:1.7.0] at net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:19) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:718) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:367) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:657) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:560) [spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] at java.lang.Thread.run(Thread.java:722) [?:1.7.0] Caused by: java.lang.NullPointerException at fr.TriiNoxYs.BuildTime.handlers.Plot.setVotes(Plot.java:69) ~[?:?] at fr.TriiNoxYs.BuildTime.handlers.Votes.setVote(Votes.java:76) ~[?:?] at fr.TriiNoxYs.BuildTime.events.Players.onInterractWithItem(Players.java:144) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0] at java.lang.reflect.Method.invoke(Method.java:601) ~[?:1.7.0] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.8.7.jar:git-Spigot-3ccbe77-a6a57a9] ... 19 more
Code:
public class Plot{ private int plotID; private Player owner; private Location loc; private int votes[] = new int[8]; private int score; public Plot(int plotID, Player owner, Location loc, int votes[], int score){ this.plotID = plotID; this.owner = owner; this.loc = loc; this.votes = votes; } public int getPlotID(){ return plotID; } public Player getOwner(){ return owner; } public Location getLoc(){ return loc; } public World getWorld(){ return loc.getWorld(); } public int[] getVotes(){ return votes; } public int getScore(){ //score = votes[0]+votes[1]+votes[2]+votes[3]+votes[4]+votes[5]+votes[6]+votes[7]; /* for(int i = 0; i < 8; i++){ score += votes[i]; } */ score = 42; return score; } public void setPlotID(int plotID){ this.plotID = plotID; } public void setOwner(Player owner){ this.owner = owner; } public void setVotes(int playerID, int vote){ playerID--; //Bukkit.broadcastMessage("votes[0]: " + this.votes[0]); votes[playerID] = vote; //La ligne 69 est içi <<<------ LIGNE 69 //Bukkit.broadcastMessage("this.votes[playerID] = vote;"); //Bukkit.broadcastMessage("votes[0]: " + this.votes[0]); } }
Merci d'avance à ceux qui me répondront et m'aideront :)
Cordialement,
TriiNo'
A voir également:
- NullPointerException Tableau Java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
Merci d'avoir répondu aussi vite !
J'ai rajouté "votes = new int[8];" dans mon constructeur, je n'ai plus d'erreur ça à l'air de marcher, je verrais par la suite si ça ne pose aucn autre problème
Merci à toi :D
La question que l'on pourrait se poser c'est pourquoi on a eu null dans ce constructeur.
Un moyen d'identifier le problème serait de faire comme ceci :
Ça va créer une autre erreur ("votes is null") mais avec la stacktrace associée on pourra savoir à quel moment ce constructeur est appelé avec une valeur null et donc corriger si nécessaire.
EDIT: Ok je viens de comprendre, j'ai suprimmé le parametre mais gardé la variable, je pensais que tu me disais de TOUT suprimmer.
Le constructeur ressemble à ça maintenant: