解决方案 »

  1.   

    import java.util.Arrays;/**
     * Created by kifile on 8/30/14.
     */
    public class ObjectArray {    public static void main(String[] args) {
            Integer[] integers = {new Integer(100), new Integer(200), new Integer(300)};
            System.out.println(Arrays.toString(integers));
        }
    }不明白你为什么要使用一个Object[] 作为数组类型,而且只有List在作为数组使用泛型的时候会出现类型消除的情况啊
      

  2.   

    这是为了实现
    T[] ts = new T[100];
      

  3.   

    这是为了实现
    T[] ts = new T[100];
    能说具体需求吗?因为只说一个实现T[] ts = new T[100];根本不知道有什么意义
      

  4.   

    这是为了实现
    T[] ts = new T[100];
    能说具体需求吗?因为只说一个实现T[] ts = new T[100];根本不知道有什么意义
    泛型数组的实现
    <T1, T2> T2[] convert(T1[] t1s, Function<T1, T2> converter)
    {
        return ?
    }
      

  5.   


    除非你在运行时能够知道T2是什么类型,否则无法实现你要的功能
    然而运行时知道T2可能也不是那么简单,所以你应该用List之类的东西,为什么一定要用数组?
      

  6.   


    除非你在运行时能够知道T2是什么类型,否则无法实现你要的功能
    然而运行时知道T2可能也不是那么简单,所以你应该用List之类的东西,为什么一定要用数组?
    因为这是ArrayUtil,list的我会在CollectionUtil里写。
    有什么曲线实现的方法吗?
      

  7.   

    public static void main(String[] args) throws Exception {
    Object[] array = { 1, 2, 3, 4, 5 };
    Integer[] num_arr = convert(array, Integer.class); System.out.println(Arrays.toString(num_arr));
    } @SuppressWarnings("unchecked")
    public static <T> T[] convert(Object[] o, Class<T> clzz) {
    T[] result = (T[]) Array.newInstance(clzz, o.length);
    for (int i = 0; i < o.length; i++) {
    Object e = o[i];
    if (e != null && !clzz.isAssignableFrom(e.getClass())) {
    throw new ClassCastException(e.getClass().getName() + " cannot be cast to " + clzz.getName());
    }
    result[i] = (T) e;
    }
    return result;
    }
      

  8.   

    @SuppressWarnings("unchecked")
    public static <T> T[] convert(Object o, Class<T> clzz) {
    int len = Array.getLength(o);

    T[] result = (T[]) Array.newInstance(clzz, len);
    for (int i = 0; i < len; i++) {
    Object e = Array.get(o, i);
    if (e != null && !clzz.isAssignableFrom(e.getClass())) {
    throw new ClassCastException(e.getClass().getName() + " cannot be cast to " + clzz.getName());
    }
    result[i] = (T) e;
    }
    return result;
    }
      

  9.   

    第一种只能接受Object[]数组,后一种可以接受任意数组
      

  10.   

    我看阿帕奇的也必须传入一个class type才行,看来java并不支持泛型数组