解决方案 »

  1.   

    没什么好办法,传class是最直接的了。
      

  2.   

    public V[] values() {
    V[] vs = (V[]) map.values().toArray(); return (V[]) vs;
    }
    map.add(1, "first");
    map.add(2, "second");
    map.add(3, "third"); Object[] values = map.values(); // 这里报错 ClassCastException
    for (Object value : values) {
    //System.out.println((String)value);
    System.out.println(value);
    }
      

  3.   

    用Class很好啊。
    String[] 和 Object[] 本质上是两个不同的类,所以转换会有一点问题。
    这个和List<Object>与List<String>有很大区别,后者本质上还是同一个类,运行时转换问题很小。