package com.huawei.updatesdk.a.a.d; import com.huawei.updatesdk.a.a.c.a.a.a; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import java.util.Map; public abstract class f { private static final String a = "f"; public static Class a(Field field) { int i; if (Map.class.isAssignableFrom(field.getType())) { i = 1; } else if (!List.class.isAssignableFrom(field.getType())) { return null; } else { i = 0; } return a(field, i); } private static Class a(Field field, int i) { Type[] actualTypeArguments; Type genericType = field.getGenericType(); if ((genericType instanceof ParameterizedType) && (actualTypeArguments = ((ParameterizedType) genericType).getActualTypeArguments()) != null && actualTypeArguments.length > i) { try { if (actualTypeArguments[i] instanceof Class) { return (Class) actualTypeArguments[i]; } String obj = actualTypeArguments[i].toString(); int indexOf = obj.indexOf("class "); if (indexOf < 0) { indexOf = 0; } int indexOf2 = obj.indexOf("<"); if (indexOf2 < 0) { indexOf2 = obj.length(); } return Class.forName(obj.substring(indexOf, indexOf2)); } catch (ClassNotFoundException e) { String str = a; a.b(str, "getType exception!" + e.getMessage()); } } return null; } public static Field[] a(Class cls) { Field[] a2 = cls.getSuperclass() != null ? a(cls.getSuperclass()) : null; Field[] declaredFields = cls.getDeclaredFields(); if (a2 != null && a2.length > 0) { Field[] fieldArr = new Field[(declaredFields.length + a2.length)]; System.arraycopy(a2, 0, fieldArr, 0, a2.length); System.arraycopy(declaredFields, 0, fieldArr, a2.length, declaredFields.length); declaredFields = fieldArr; } ArrayList arrayList = new ArrayList(); for (Field field : declaredFields) { if (field.getName().indexOf("$") < 0) { arrayList.add(field); } } if (arrayList.size() == declaredFields.length) { return declaredFields; } Field[] fieldArr2 = new Field[arrayList.size()]; arrayList.toArray(fieldArr2); return fieldArr2; } }