a.java 源代码
package com.apm.insight.h;
import android.util.Log;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
public class a {
private static final Map<Class<?>, Class<?>> f6490a;
public static class C0100a<T> {
public final Class<? extends T> f6491a;
public final T f6492b;
}
static {
HashMap hashMap = new HashMap();
f6490a = hashMap;
Class cls = Boolean.TYPE;
hashMap.put(Boolean.class, cls);
hashMap.put(Byte.class, Byte.TYPE);
hashMap.put(Character.class, Character.TYPE);
hashMap.put(Short.class, Short.TYPE);
Class cls2 = Integer.TYPE;
hashMap.put(Integer.class, cls2);
Class cls3 = Float.TYPE;
hashMap.put(Float.class, cls3);
Class cls4 = Long.TYPE;
hashMap.put(Long.class, cls4);
hashMap.put(Double.class, Double.TYPE);
hashMap.put(cls, cls);
Class cls5 = Byte.TYPE;
hashMap.put(cls5, cls5);
Class cls6 = Character.TYPE;
hashMap.put(cls6, cls6);
Class cls7 = Short.TYPE;
hashMap.put(cls7, cls7);
hashMap.put(cls2, cls2);
hashMap.put(cls3, cls3);
hashMap.put(cls4, cls4);
Class cls8 = Double.TYPE;
hashMap.put(cls8, cls8);
}
public static <T> T a(Class<?> cls, String str, Object... objArr) {
return (T) a(cls, str, a(objArr)).invoke(null, b(objArr));
}
private static Object[] b(Object... objArr) {
if (objArr != null && objArr.length > 0) {
Object[] objArr2 = new Object[objArr.length];
for (int i6 = 0; i6 < objArr.length; i6++) {
Object obj = objArr[i6];
if (obj != null && (obj instanceof C0100a)) {
objArr2[i6] = ((C0100a) obj).f6492b;
} else {
objArr2[i6] = obj;
}
}
return objArr2;
}
return null;
}
public static <T> T a(String str, String str2, Object... objArr) {
try {
return (T) a(Class.forName(str), str2, objArr);
} catch (Exception e6) {
Log.w("JavaCalls", "Meet exception when call Method '" + str2 + "' in " + str, e6);
return null;
}
}
private static Method a(Class<?> cls, String str, Class<?>... clsArr) {
Method a7 = a(cls.getDeclaredMethods(), str, clsArr);
if (a7 != null) {
a7.setAccessible(true);
return a7;
}
if (cls.getSuperclass() != null) {
return a((Class<?>) cls.getSuperclass(), str, clsArr);
}
throw new NoSuchMethodException();
}
private static Method a(Method[] methodArr, String str, Class<?>[] clsArr) {
if (str == null) {
throw new NullPointerException("Method name must not be null.");
}
for (Method method : methodArr) {
if (method.getName().equals(str) && a(method.getParameterTypes(), clsArr)) {
return method;
}
}
return null;
}
private static boolean a(Class<?>[] clsArr, Class<?>[] clsArr2) {
if (clsArr == null) {
return clsArr2 == null || clsArr2.length == 0;
}
if (clsArr2 == null) {
return clsArr.length == 0;
}
if (clsArr.length != clsArr2.length) {
return false;
}
for (int i6 = 0; i6 < clsArr.length; i6++) {
if (!clsArr[i6].isAssignableFrom(clsArr2[i6])) {
Map<Class<?>, Class<?>> map = f6490a;
if (!map.containsKey(clsArr[i6]) || !map.get(clsArr[i6]).equals(map.get(clsArr2[i6]))) {
return false;
}
}
}
return true;
}
private static Class<?>[] a(Object... objArr) {
if (objArr == null || objArr.length <= 0) {
return null;
}
Class<?>[] clsArr = new Class[objArr.length];
for (int i6 = 0; i6 < objArr.length; i6++) {
Object obj = objArr[i6];
if (obj == null || !(obj instanceof C0100a)) {
clsArr[i6] = obj == null ? null : obj.getClass();
} else {
clsArr[i6] = ((C0100a) obj).f6491a;
}
}
return clsArr;
}
}