2012-04-25 2 views
0

私はjavaのジェネリックスに関連する作業をしています。この例はインターネットhereで見つかりました。これは簡単な質問かもしれませんが、私はジェネリックスを扱った人から正解を見つけたいと思います。このジェネリックメソッドは、入力引数としてさまざまなタイプの配列をとり、それらを表示します。今私は、コマンドラインからこれらの配列を読み取ることでこれをしたいと思います。あなたはそれを行う正しい方法を見つけるのを助けてくれますか?ありがとう。コマンドラインから配列を読み込み、JAVAの汎用メソッドを使って配列を表示する方法は?

public class GenericMethodTest 
    { 
     // generic method printArray       
     public static <E> void printArray(E[] inputArray) 
     { 
      // Display array elements    
      for (E element : inputArray){   
       System.out.printf("%s ", element); 
      } 
      System.out.println(); 
     } 

     public static void main(String args[]) 
     { 
      // Create arrays of Integer, Double and Character 
      Integer[] intArray = { 1, 2, 3, 4, 5 }; 
      Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 }; 
      Character[] charArray = { 'H', 'E', 'L', 'L', 'O' }; 

      System.out.println("Array integerArray contains:"); 
      printArray(intArray ); // pass an Integer array 

      System.out.println("\nArray doubleArray contains:"); 
      printArray(doubleArray); // pass a Double array 

      System.out.println("\nArray characterArray contains:"); 
      printArray(charArray); // pass a Character array 
     } 
    } 
+0

私はあなたがここで求めていることを正確にはわかりません - 「文字列の配列をコマンドライン引数から.e.g。int配列に変換するにはどうすればよいですか? –

+0

コマンドプロンプトから配列の要素を読み込みたいですか?コマンドプロンプトを使ってプログラムを実行する方法を知っていますか? – sgowd

+0

@Doyle intsやdoubleやfloatなど、さまざまな配列を持つメソッドを呼び出すときと同じように、要素を自分で入力してから、それらを戻したい(単純な例と愚かなことは分かっている) bla = {1,2,3}。それからあなたはストリングを得ますか?私は文字列の配列を作成して表示することができますが、私のメソッドを文字列だけでなく、異なる配列で呼び出すことができます。 – Michiru

答えて

2

私はあなたのコマンドラインの一部として、データ型を含める必要があり、または他のヒューリスティックによってタイプを検出ルーチンを持っていると思います。何かのように

java GenericMethodTest "doubleArray" "1.1 2.2" 

ここでは2つの引数、型と配列があります。そして、私はこの種のものに科学的プログラミングで多くを行うと、私は通常のデータ型の特殊なケースで終わるように

public DoubleArray (String sin) { 
    String[] ss = sin.split(" ")' 
    double dd[] = new Double[ss.length]; 
    for (String s : ss) { 
     dd[i++] = new Double(s); 
    } 
} 

として、配列に文字列から二番目の引数を変換コンストラクタが必要になります。プログラムは整数や文字列、倍精度をどのように知っていますか?あなたはそれを伝えなければならないか、それを推測する機会を与えなければならない。

+0

ご返信ありがとうございます。私はあなたの答えをupvotedしかし、それは本当に私が探していたものではありません。たぶん私の質問はちょっとばかなことです。私は実際には一般的なソート方法を持っており、私は入力したデータの種類を並べ替える必要があります。あなたが言ったように、アイデアは文字列を分割してDouble配列を構築することです。しかし、入力するデータの種類はわかりません。私はそれが何か簡単だと思ったが、私はそれを行う正しい方法を見つけることができるように見える。あるいは、私は十分な経験がないかもしれません。とにかくありがとうございました。 – Michiru

+0

@Michiru - これは正解と思われる。引数は常に*文字列になります。何らかの形で(ハードとエラーが起こりやすい)何かが推測されるか、またはユーザーが型を宣言するようにしなければなりません(ここでは 'doubleArray'のような記述子)。次に、文字列をこれらの型に変換する方法を定義し、正しいメソッドを呼び出す必要があります。私はあなたが念頭に置いていたことを知らないが、これら2つのステップを伴わない実現可能な解決策は考えられない。 –

関連する問題