Appeler une méthode [Noob] - Java - Programmation
Marsh Posté le 11-10-2013 à 23:05:34
Tout d'abord, une question rituelle : "Quel est le message d'erreur ?"
Ensuite, par1 et par2, c'est juste un exemple pour montrer 2 paramètres.
Mais dans le cas présent, je ne vois aucune fonction ayant deux paramètres.
- public GenEnd(Main par0) a un seul paramètre.
- public void genCrystal() n'a pas de paramètre.
- private boolean crystalExist(World w, int x, int y, int z) a quatre paramètres.
Les paramètres nécessaires à la création d'une instance de l'objet GeEnd() sont les paramètres du constructeur souhaité.
Ici, il n'y a qu'un seul constructeur qui est public GenEnd(Main par0), et il a besoin d'un paramètre.
Ensuite pour l'appel de la fonction genCrystal(), il n'y a pas de paramètre à passer.
Marsh Posté le 12-10-2013 à 00:15:10
Je sais bien pour le GenCrystal, mais justement, je ne sais pas quel paramètre entrer pour GenEnd.
Au niveau des erreurs, bah aucune, je cherche juste le paramètre de GenEnd, car sans lui cela ne peux pas tourner...
Le problème, c'est que je ne sais pas lequel mettre
Marsh Posté le 12-10-2013 à 01:05:03
La demande devient plus clair.
En théorie, il faut simplement faire :
private Main m = new Main(); |
Si ça ne marche pas, par exemple parce que cela ferait une sorte de boucle,
alors prendre la solution qui est indiquée en bas de la page https://forums.bukkit.org/threads/g [...] es.134366/
Marsh Posté le 12-10-2013 à 11:07:33
Je test ça, et je te dis
Edit: Avec cela, il appelle bien la méthode GenEnd, mais pas la méthode genCrystal, la plus importante.
Marsh Posté le 12-10-2013 à 13:36:29
Ensuite : maclasse.maMethode(param1, param2);
C'est à dire : GenEnd.genCrystal(); ou autrenomdelinstanceGenEnd.genCrystal();
Marsh Posté le 16-10-2013 à 11:19:58
Attention, GenEnd(Main par0) est un constructeur (=/= méthode), c'est à dire une "fonction" qui construit une instance de la classe GenEnd.
Tu ne peux pas appeler genCrystal au début parce qu'il n'y a aucune instance de GenEnd, c'est à dire aucun objet de classe "GenEnd" qui pourrait effectuer cette méthode.
C'est pour cela qu'Olivthill t'a dit de créer un objet GenEnd (= faire une instance)
GenEnd genEnd= new GenEnd(m);
genEnd (minuscule au début, convention) est une variable, c'est un objet, de classe GenEnd (majuscule, convention aussi).
Maintenant que tu as un objet représentant de la classe GenEnd, qui en connaît les méthodes, tu peux lui demander, à lui, d'effectuer la méthode genCrystal(), comme dit au dessus :
genEnd.genCrystal();
Tu n'as rien à mettre entre les parenthèses puisque la description de la méthode genEnd() dans ton message commence par :
public void genCrystal()
C'est à dire une méthode publique (public), pouvant être appelée de n'importe où (par un représentant de GenEnd bien sûr), qui ne retourne rien (void) et qui ne prend pas de paramètre ( "()" ).
Marsh Posté le 11-10-2013 à 20:42:19
Bonjours à tous, je suis entrains de m'arracher les cheveux...
Je suis un gros débutant en java, et je cherche simplement comment appeler une méthode d'une autre classe.
Je souhaite appeler la méthode "genCrystal()", contenue dans la class GenEnd que voici:
Je sais que normalement il faut faire
Mais je galère avec ça, et je ne sais pas quoi mettre à la place des "par1, par2"...
Merci d'avance, pour avoir aider un gros débutant qui modifie des plugins en java et qui bloque là