[Minecraft] Problème avec les tableaux

Résolu
Helh -  
 Helh -
Bonjour,

Je débute en Java, et j'aimerai avoir quelque éclaircissements sur les tableaux car je suis complètement bloqué. Voici mon code en question :


double cornersX[];
double cornersY[];
double cornersZ[];
if (type == "area") {
if (keys.contains("corners")) {
CArray givenCorners = Static.getArray(optionArray.get("corners", t), t);
if (givenCorners.inAssociativeMode()) {
throw new ConfigRuntimeException("The corners array must not be associative.", ExceptionType.CastException, t);
}
MCLocation cornerLocation;
cornersX[] = new double[givenCorners.size()];
cornersZ[] = new double[givenCorners.size()];
for (String index : givenCorners.keySet()) {
cornerLocation = ObjectGenerator.GetGenerator().location(givenCorners.get(index, t), mcworld, t);
cornersX[Integer.parseInt(index)] = cornerLocation.getX();
cornersZ[Integer.parseInt(index)] = cornerLocation.getZ();
}
} else {
cornersX[] = {spawnLocation.getX()};
cornersZ[] = {spawnLocation.getZ()};
}
cornersY[] = null;
} else if (type == "polyline") {
if (keys.contains("corners")) {
CArray givenCorners = Static.getArray(optionArray.get("corners", t), t);
if (givenCorners.inAssociativeMode()) {
throw new ConfigRuntimeException("The corners array must not be associative.", ExceptionType.CastException, t);
}
MCLocation cornerLocation;
cornersX[] = new double[givenCorners.size()];
cornersY[] = new double[givenCorners.size()];
cornersZ[] = new double[givenCorners.size()];
for (String index : givenCorners.keySet()) {
cornerLocation = ObjectGenerator.GetGenerator().location(givenCorners.get(index, t), mcworld, t);
cornersX[Integer.parseInt(index)] = cornerLocation.getX();
cornersZ[Integer.parseInt(index)] = cornerLocation.getY();
cornersZ[Integer.parseInt(index)] = cornerLocation.getZ();
}
} else {
cornersX[] = {spawnLocation.getX()};
cornersY[] = {spawnLocation.getY()};
cornersZ[] = {spawnLocation.getZ()};
}
} else {
cornersX[] = null;
cornersY[] = null;
cornersZ[] = null;
}

Je dois au final obtenir 3 variables qui sont des tableaux de double, sachant que je ne peux pas prévoir à l'avance quel devra être la taille du tableau ni ce qu'il contiendra (à part que ce seront des doubles).
J'ai un peu de mal avec la déclaration et la gestion des tablraux.
Lors de la compilation, à peu près toutes les lignes concernées par un tableau génèrent une erreur (error: not a statement, error: ';' expected ou error: ']' expected).

Je vous remercie par avance.

A voir également:

2 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Les crochets spécifient le tableau sur son type, pas sur les variables.
Il faut donc écrire
double[] cornersX;
à la place de
double cornersX[];
puis utiliser
cornersX
sans les crochets. Idem pour
cornersY
et
cornersZ
.
Tu n'utiliseras les crochets sur les variables que pour référencer une case du tableau, en précisant alors l'indice de celui-ci.
cornersX[0]; cornersX[1]; ...


Remarque : il ne faut jamais comparer deux objets avec l'opérateur == qui compare la référence de l'objet, mais pas leurs valeurs. Utilises plutôt la méthode equals, par exemple en remplaçant
if (type == "area")
par
if (type.equals("area"))
.
La confiance n'exclut pas le contrôle
1
Helh
 
Je vous remercie vos conseil m'ont bien bien aidé, j'ai pu terminer tout fonctionne.
0