2012-01-31 22 views
0

私のように、文字列と文字列の配列のマップを持っています、今、私はこの地図の値を得るのですか、私は呼び出し元の関数に[]文字列の配列を返すようにしたいどのよう文字列の配列として値を使用してJavaマップを照会することについて。

private static Map cacheTimeStamp = new HashMap<String, String[]>(); 

cacheTimeStamp.get("stringKey")を使用してみましたが、それオブジェクトを返し、私は文字列の配列を取得したい。

答えて

3

このようなあなたのマップを定義します。

private static Map<String, String[]> cacheTimeStamp = new HashMap<String, String[]>(); 

問題は、マップのキーと値のオブジェクト型を指定せずに開いているマップを定義していることです。基本的にはタイプjava.lang.Objectのキーで、値はjava.lang.Objectです。

+0

確かに、今それは意味がある.... – Rachel

0

あなたはジェネリックスを定義しませんでした。

Map<String, String[]> cacheTimeStamp = new HashMap<String, String[]>(); 

それは実際には、文字列の配列を返すでしたが、厳密にあなたが定義の中でジェネリック医薬品が含まれていない時に知りません。そのため、IDEがオブジェクトであることをIDEが指示するのはこのためです。配列オブジェクトであることに注意してください。

+0

合意...ありがとうMartijin – Rachel

0

実際にはString[]が表示されます。

は私の2つのオプションを参照してください

  1. のString []に戻り値をキャスト:

    のString [] myEntry =(文字列[])cacheTimeStamp.get( "stringKey")。

  2. (私の好み)マップに型引数を追加します。

    プライベート静的地図cacheTimeStamp =新しいHashMapの(); // ... String [] myEntry = cacheTimeStamp.get( "stringKey");

関連する問題