10

方法があります

public boolean findANDsetText  (String Description, String ... extra ) {

内部で別のメソッドを呼び出して渡したいのextrasですが、新しい要素(説明)をエクストラに追加したいと思います。

     object_for_text = getObject(find_arguments,extra);

Javaでそれを行うにはどうすればよいですか?コードはどのようになりますか?

この質問のコードに対応するのに疲れましたが、機能させることができませんでした。

4

7 に答える 7

13

ここで他の回答のいくつかを拡張するには、配列のコピーを少し速く行うことができます

String[] newArr = new String[extra.length + 1];
System.arraycopy(extra, 0, newArr, 0, extra.length);
newArr[extra.length] = Description;
于 2012-07-04T03:01:56.357 に答える
2

extra単なるString配列です。そのような:

List<String> extrasList = Arrays.asList(extra);
extrasList.add(description);
getObject(find_arguments, extrasList.toArray());

の一般的なタイプをいじる必要があるかもしれませんextrasList.toArray()

より速く、より冗長にすることができます。

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);
于 2012-07-04T02:51:13.917 に答える
1

このようなことを意味しますか?

public boolean findANDsetText(String description, String ... extra)
{
    String[] newArr = new String[extra.length + 1];
    int counter = 0;
    for(String s : extra) newArr[counter++] = s;
    newArr[counter] = description;

    // ...

    Foo object_for_text = getObject(find_arguments, newArr);

    // ...
}
于 2012-07-04T02:52:53.447 に答える
0

単にこのように...

Var-args を以下のように扱います...

例:

上記の例では、2番目のパラメーターは「String ... extra」です

したがって、次のように使用できます。

extra[0] = "Vivek";
extra[1] = "Hello";

または

for (int i=0 ; i<extra.length ; i++)

  {

          extra[i] = value;

  }
于 2012-07-04T02:58:55.243 に答える