Bonjour,
Je rencontre un problème de compréhension lié aux variables de type tableau.
Voici un exemple de code fonctionnel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public class ceciestuntest {
 
    private final int valeurTest;
 
    public ceciestuntest(int val) {
        valeurTest = val;
        System.out.println("Valeur donnée : " + val);
        }
    }
Ce code est parfaitement fonctionnel. Vous allez me dire, il est où le problème lié à un tableau ? J'y viens...
Voici un code équivalent mais où j'utilise cette fois un tableau d'entier :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public class ceciestuntest {
 
    private final int[] valeursTest = {1,2,3,4};
 
    public ceciestuntest() {
        System.out.println("Valeurs connues :");
        for (int i: valeursTest) System.out.println(i);
        }
    }
Là aussi, pas de problème, ce code fonctionne. Maintenant faisons cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public class ceciestuntest {
 
    private final int[] valeursTest;
 
    public ceciestuntest(int v1, int v2, int v3, int v4) {
        valeursTest = {v1,v2,v3,v4};
        System.out.println("Valeurs donnees :");
        for (int i: valeursTest) System.out.println(i);
        }
    }
J'utilise Netbeans, et lorsque je rédige la ligne "valeursTest=...", Netbeans m'indique une erreur de syntaxe en précisant qu'il manque le caractère ';' ?
De toute évidence, il n'aime pas voir des accolades ici.
Cependant, si je passe par l'intermédiaire d'un autre tableau, alors il est d'accord :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
public class ceciestuntest {
 
    private final int[] valeursTest;
 
    public ceciestuntest(int v1, int v2, int v3, int v4) {
        int[] valeursTmp = {v1,v2,v3,v4};
        valeursTest = valeursTmp;
        System.out.println("Valeurs donnees :");
        for (int i: valeursTest) System.out.println(i);
        }
    }
Je n'arrive pas à comprendre pourquoi je ne peux pas donner directement {v1,v2,v3,v4} à valeursTest ?