jimu-decompiled/sources/com/google/common/reflect/Invokable.java
2025-05-13 19:24:51 +02:00

75 lines
3.0 KiB
Java

package com.google.common.reflect;
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Constructor;
import java.lang.reflect.GenericDeclaration;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
import java.util.Arrays;
/* loaded from: classes.dex */
public abstract class Invokable<T, R> extends Element implements GenericDeclaration {
static class ConstructorInvokable<T> extends Invokable<T, T> {
final Constructor<?> c;
ConstructorInvokable(Constructor<?> constructor) {
super(constructor);
this.c = constructor;
}
private boolean c() {
Class<?> declaringClass = this.c.getDeclaringClass();
if (declaringClass.getEnclosingConstructor() != null) {
return true;
}
return declaringClass.getEnclosingMethod() != null ? !Modifier.isStatic(r1.getModifiers()) : (declaringClass.getEnclosingClass() == null || Modifier.isStatic(declaringClass.getModifiers())) ? false : true;
}
Type[] b() {
Type[] genericParameterTypes = this.c.getGenericParameterTypes();
if (genericParameterTypes.length <= 0 || !c()) {
return genericParameterTypes;
}
Class<?>[] parameterTypes = this.c.getParameterTypes();
return (genericParameterTypes.length == parameterTypes.length && parameterTypes[0] == getDeclaringClass().getEnclosingClass()) ? (Type[]) Arrays.copyOfRange(genericParameterTypes, 1, genericParameterTypes.length) : genericParameterTypes;
}
@Override // java.lang.reflect.GenericDeclaration
public final TypeVariable<?>[] getTypeParameters() {
TypeVariable<Class<? super T>>[] typeParameters = getDeclaringClass().getTypeParameters();
TypeVariable<Constructor<?>>[] typeParameters2 = this.c.getTypeParameters();
TypeVariable<?>[] typeVariableArr = new TypeVariable[typeParameters.length + typeParameters2.length];
System.arraycopy(typeParameters, 0, typeVariableArr, 0, typeParameters.length);
System.arraycopy(typeParameters2, 0, typeVariableArr, typeParameters.length, typeParameters2.length);
return typeVariableArr;
}
}
static class MethodInvokable<T> extends Invokable<T, Object> {
final Method c;
MethodInvokable(Method method) {
super(method);
this.c = method;
}
@Override // java.lang.reflect.GenericDeclaration
public final TypeVariable<?>[] getTypeParameters() {
return this.c.getTypeParameters();
}
}
<M extends AccessibleObject & Member> Invokable(M m) {
super(m);
}
@Override // com.google.common.reflect.Element, java.lang.reflect.Member
public final Class<? super T> getDeclaringClass() {
return (Class<? super T>) super.getDeclaringClass();
}
}