如何将java.lang.Object转换为ArrayList?

2022-09-01 03:45:20

我有一个有效的对象,形式为.我必须再次将 转换为 .我试过这个:ArrayListjava.lang.ObjectObjectArrayList

Object obj2 = from some source . . ;
ArrayList al1 = new ArrayList();
al1 = (ArrayList) obj2;
System.out.println("List2 Value: "+al1);

但它正在印刷 .我该怎么做?null


答案 1

您可以创建一个静态 util 方法,用于将任何集合转换为 Java 列表

public static List<?> convertObjectToList(Object obj) {
    List<?> list = new ArrayList<>();
    if (obj.getClass().isArray()) {
        list = Arrays.asList((Object[])obj);
    } else if (obj instanceof Collection) {
        list = new ArrayList<>((Collection<?>)obj);
    }
    return list;
}

您还可以在下面混合验证:

public static boolean isCollection(Object obj) {
  return obj.getClass().isArray() || obj instanceof Collection;
}

答案 2

这只会导致在演员之前,所以你的问题比你想象的要早。(另外,如果您要立即分配给它,则无需构造新的 ArrayList 来初始化它。就说吧。nullobj2nullal1ArrayList al1 = (ArrayList) obj2;


推荐