java向下强转一定要谨慎

不要用(List )强转,因为map.values()返回的是一个Collection,比List要大,强行向下强转会抛异常。


@Test

public void testMap2List() throws Exception{

    Map map = new HashMap();

    map.put("1", "AA");

    map.put("2", "BB");

    map.put("3", "CC");

    map.put("4", "DD");

    Collection valueCollection = map.values();

    final int size = valueCollection.size();

//这里不要用(List )强转,因为map.values()返回的是一个Collection,比List要大,强行向下强转会抛异常

    List valueList = new ArrayList(valueCollection);

    String[] valueArray = new String[size];

    map.values().toArray(valueArray);

}

你可能感兴趣的:(java向下强转一定要谨慎)