Comment puis-je dynamiquement le nom des objets en Java?
Disons que j'avais besoin de faire une série de String[] objets.
Je sais que si je voulais faire un tableau de chaîne appelée "test" pour tenir 3 Cordes que je pouvais faire
String[] test = new String[3];
Mais disons que j'avais besoin de faire une série de ces tableaux, et je voulais d'être nommé, 1,2, 3, 4, 5... etc. Cependant, de nombreux dont j'avais besoin et je ne savais pas combien j'en avais besoin.
Comment puis-je obtenir un effet similaire à ceci:
for (int k=0; k=5; k++){
String[] k = new String[3];
}
Qui serait créé 5 tableaux de chaîne nommée 1 à 5. Fondamentalement, je veux être en mesure de créer la matrice des objets avec un nom detemined par une autre fonction. Pourquoi ne puis-je pas paraître pour ce faire? Suis-je stupide?
OriginalL'auteur Sam Stern | 2010-04-26
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas toutes les "variables" (c'est-à variables avec des noms de variables) en Java, mais vous pouvez créer des Cartes ou des Tableaux pour faire face à votre problème particulier. Lorsque vous rencontrez un problème qui vous fait penser à "j'ai besoin de mes variables de changer de nom de façon dynamique", vous devriez essayer et de penser "tableau associatif". En Java, vous obtenez des tableaux associatifs à l'aide de
Map
s.Qui est, vous pouvez conserver une Liste de vos tableaux, quelque chose comme:
Ou peut-être un peu plus proche de ce que vous êtes après, vous pouvez utiliser une Carte:
OriginalL'auteur Mark Elliot
D'autres ont déjà apporté beaucoup de réponses, mais juste à couvrir toutes les bases, Java n'ont tableau de tableaux.
Maintenant, vous n'avez pas 5 variables nommées
k1
,k2
,k3
,k4
,k5
, chacunString[3]
......mais vous ne disposez d'un tableau de
String[]
,k[0]
,k[1]
,k[2]
,k[3]
,k[4]
, chacunString[3]
.OriginalL'auteur polygenelubricants
Le plus proche que vous obtiendrez en Java:
Noter que
"3"
n'est pas une variable, mais en liaison avec lesmap
objet, il fonctionne comme un ... en quelque sorte.OriginalL'auteur Stephen C
Ce que vous voulez faire est appelé la métaprogrammation - la programmation d'un programme, qui, Java ne supporte pas (il permet de métadonnées uniquement par le biais d'annotations). Cependant, pour un simple cas d'utilisation, vous pouvez créer une méthode qui permettra de prendre un int et retour le tableau de chaîne que vous avez voulu, par exemple, par acccessing le tableau de tableaux. Si vous vouliez un peu plus complexe convention de nommage, envisager de swtich déclaration pour quelques valeurs et de la carte pour plus de valeurs. Pour nombre fixe de valeurs avec des noms personnalisés définir un Enum, qui peut être passé comme argument.
OriginalL'auteur Gabriel Ščerbák