Créer un tableau en le passant comme argument en Java
Est-il un moyen de créer un tableau d'objets dans le cadre d'un constructeur ou une méthode? Je ne suis vraiment pas sûr de savoir comment ce mot, j'ai donc inclus un exemple. J'ai un enum, et l'un des champs est un tableau de nombres. Voici ce que j'ai essayé:
public enum KeyboardStuff {
QWERTY(1, {0.5f, 1.3f, 23.1f}, 6);
DVORAK(5, {0.1f, 0.2f, 4.3f, 1.1f}, 91);
CHEROKEE(2, {22.0f}, 11);
private int number, thingy;
private float[] theArray;
private KeyboardStuff(int i, float[] anArray, int j) {
//do things
}
}
Le compilateur dit que les crochets { } ne sont pas valides et doivent être supprimés. Est il possible que je peux passer un tableau en argument sans créer un tableau d'objets à l'avance?
source d'informationauteur Tanaki
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer avec
new float[] { ... }
.Suivant @Dave suggèrent je voudrais utiliser un vararg
Il est assez rare que l'utilisation d'un
float
est mieux que d'utiliser undouble
. double a moins d'erreur d'arrondi et n'utilise que 4 octets.Est-il un moyen que vous pouvez passer un tableau sans la création d'un tableau?
Non, mais vous pouvez utiliser varargs pour le rendre pratiquement invisible, mais qui
int
à la fin peut-être besoin de se déplacer.Si l'utilisation de Listes au lieu de tableaux est une option, les futures versions de Java pourrait commencer à soutenir un " collection littéraux ' la syntaxe qui, malheureusement, ne semble pas avoir fait en Java 8: