potenziell idiotisch Frage Vorsicht unter:Gibt die Anzahl der variablen Argumente einer Methode in Java
ich eine Methode, die die String.format() -Methode verwendet einen Text zu formatieren. Momentan erhält es zwei Parameter, also habe ich zwei "% s" -Parameter, um den gewünschten Text zu erzeugen.
Aber jemand könnte 3 Parameter oder 4 oder 100 mit meiner Methode verwenden möchten. Wie kann ich die Länge der übergebenen Parameter als varargs an die String.format() -Methode übergeben, so dass, falls 3 Parameter übergeben werden, 3 "% s" anstelle der aktuellen 2 davon vorhanden sind; oder 4 oder 100.
Wie können Sie die Anzahl der Parameter erhalten, die an die String.format() -Methode übergeben werden, sodass der darin enthaltene Text automatisch "% s" nach Bedarf hinzufügt? Weil die Argumente nur als reguläre Argumente übergeben werden, nicht als Arrays oder ähnliches. Wie erhalten Sie die Länge des Argumentarrays?
PS. Das ist wichtig - ich spreche nicht davon, die (String ... Argumente) zu erhalten - es gibt keine solche Sache - wenn jemand Ihre Methode aufruft, verwendet es tatsächliche Parameter, die "String ... arguments" steht nicht zur Verfügung und erhalte seine Länge.
Ich weiß, dies ist eine schlecht formulierte Frage, weil ich den Code nicht vor mir habe, um weiter zu erklären, aber das beschäftigt mich schon seit einiger Zeit - wie erhält man die Anzahl der Argumente, die man an a Methode?
Für diese so etwas wie:
String.format(SomeObject.SomeString, param1, param2,...,param 100)
EDIT: Die SomeObject.SomeString
wird wie folgt erklärt:
String SomeString = "Blah blah %s blah blah blah %s";
So hat es zwei Argumente, die in ihm fest einprogrammiert werden.
Wenn jemand es verwendet, wie passt man SomeObject.SomeString
so an, dass es "weiß", wie viele Parameter an die String.format() -Methode übergeben wurden (so dass SomeObject.SomeString weiß, wie viele% s dynamisch hinzugefügt werden)?
Wie ist es sinnvoll, die Anzahl der Parameter zu kennen, die an 'String.format' übergeben werden? Wenn Sie nicht die richtige Anzahl von Parametern für Ihre Formatzeichenfolge haben, erhalten Sie 'MissingFormatArgumentException'; Wenn du zu viele hast, wirst du die zusätzlichen sowieso nicht sehen. Sie können nur 'args.length' als expliziten Parameter für den Aufruf 'String.format' übergeben. –