J'ai une méthode à l'intérieur, je veux appeler une autre méthode et transmettre extras code> mais je veux ajouter un nouvel élément (description) aux extras.
object_for_text = getObject(find_arguments,extra);
7 Réponses :
extra code> est juste une chaîne code> (code> tableau. En tant que tel:
String[] extraWithDescription = new String[extra.length + 1];
int i = 0;
for(; i < extra.length; ++i) {
extraWithDescription[i] = extra[i];
}
extraWithDescription[i] = description;
getObject(find_arguments, extraWithDescription);
Je reçois Impossible d'invoquer l'asile () sur la chaîne de type tableau [] code> pour la première option.
Voulez-vous utiliser arranges.Aslist (extra) code>? (Voir le commentaire de Radek).
Maintenant, je reçois Impossible d'invoquer Toarray () sur le type primitif Boolean code> pour
Arrays.Anlist (extra) .Ajouter (description) .Tearray () code>
Donnera un arrayindexoutofboundsException code>.
Cela ne fonctionnera plus (testé avec Java 8U144) puisque les arrayes.Aslist () renvoie une liste de taille fixe. Suggère d'utiliser des tableaux.copyof (...).
Voulez-vous dire quelque chose comme ça?
C'est simplement de cette façon ...
Traitez les var-args comme ci-dessous ... p>
Exemple: strong> p> dans votre exemple ci-dessus Le 2e paramètre est "String ... extra" p> afin que vous puissiez utiliser comme ceci: p> ou strong> strong> strong> strong> p>
Pour développer certaines des autres réponses ici, la copie de la matrice pourrait être effectuée un peu plus rapidement avec
String[] newArr = new String[extra.length + 1]; System.arraycopy(extra, 0, newArr, 0, extra.length); newArr[extra.length] = Description;
Utiliser arranges.copyof (...) code>:
avec Java 11 Utilisez comme paramètre pour une nouvelle liste:
List<String> templateArguments = new ArrayList<(Arrays.asList(args)); templateArguments.add(throwable.getMessage()); String.format(template, templateArguments.toArray());
conversion à la liste et retour au tableau, mais plus courte à l'aide de fonctions utilitaires:
Duplicaté possible de Comment Appeler une méthode Varargs avec un argument supplémentaire d'une méthode Varargs