Этот код должен работать нормально, за исключением этой строки:
int[] myArray = new int[2]:
, который использует двоеточие вместо точки с запятой и бессмысленно создает новый массив. Учитывая, что вы говорите, что получаете ошибку в время выполнения , я подозреваю, что это не проблема - но это трудно сказать, учитывая, что вы еще не сказали, что это за ошибка.
Я бы также предложил использовать обобщения, а не необработанный тип, даже если тип значения просто Object. Вот короткая, но полная программа, показывающая, как она работает:
import java.util.*;
public class Test {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("two", new int[] { 1, 2 });
int[] myArray = (int[]) map.get("two");
System.out.println("Array value " + myArray[0]);
System.out.println("Array value " + myArray[1]);
}
}
Выход:
Array value 1
Array value 2
Учитывая, что этот код работает, пожалуйста, опубликуйте короткую, но полную программу, которая не работает - или по крайней мере скажите нам, какую ошибку вы действительно получаете.