0

提供された引数を使用して、特定の形式で文字列を生成するファイルライターを作成しています。ユーザーにとって可能な限り簡単な方法で引数がメソッドに渡されるようにしたいと思います。引数は、toString()メソッドを使用して文字列に変換されるため、任意のタイプにすることができます。簡単な例を次に示します。

public String writeLine( Object arg1, Object arg2 ) {
    return "(" + arg1.toString() + "," + arg2.toString() + ")";
}

ただし、潜在的に無制限の数の引数(arg3、arg4など)を渡すことができる必要があります。これを行うための最良の方法は何ですか?私はこれを行うことを考えました:

public String writeLine( Object[] argArray ) {
    String str = new String();
    for (int i = 0; i < argArray.length; i++) {
        str += argArray[i].toString();
    }
    return str;
}

public static void main(String[] args) {
    float[] values = {0.1, 0.2, 0.4, 0.8};
    writeLine( values ); //<------ Compile Error
}

しかし、特定の種類の配列を渡したい場合、これは機能しないことにすぐに気付きました。float配列は、最初にObject配列に変換する必要があります。これは、ユーザー側での不要な作業です。これを単純化するための最良の方法は何ですか?

  1. 一般的な配列タイプを引数として取るいくつかのメソッドを記述します(writeLine(float [] argArray)、writeLine(String [] argArray)など)(すべてのタイプで機能するわけではありません)
  2. 渡す前にすべての配列をオブジェクト配列に変換します(時間がかかり、余分な作業が必要です)。
  3. 他に何かありますか?
4

2 に答える 2

4

試す:

public String writeLine( Object... args ) {
...
}

プリミティブ配列を使用する場合は、適切なラッパー タイプの配列に置き換えてください。

Float[] values = {0.1f, 0.2f, 0.4f, 0.8f};
于 2012-09-12T22:13:15.190 に答える
3

すべてのプリミティブ配列型 (例: float[])を特殊なケースint[]にする必要がありますが、オブジェクト型の場合は、Object[].

于 2012-09-12T22:23:40.787 に答える