public class _ReflectKt
| 限定符和类型 | 方法和说明 |
|---|---|
static java.lang.Class<?> |
classPath2class(java.lang.String $receiver)
类的相对路径转类
|
static void |
cloneProperties(java.lang.Object $receiver,
java.lang.String props)
克隆对象属性
|
static void |
cloneProperties(java.lang.Object $receiver,
boolean cloningArrayCollectionElement,
java.lang.String props)
克隆对象属性
|
static java.lang.Object |
convert(kotlin.reflect.KParameter $receiver,
java.lang.String value)
转换参数类型
|
static java.lang.reflect.Field |
getAccessibleField(java.lang.Class<?> $receiver,
java.lang.String name)
获得可访问的属性
|
static java.lang.reflect.Method |
getAccessibleMethod(java.lang.Class<?> $receiver,
java.lang.String name,
java.lang.Class parameterTypes)
获得可访问的方法
|
static kotlin.reflect.KFunction<?> |
getConstructor(kotlin.reflect.KClass<?> $receiver,
java.lang.Class paramTypes)
查找构造函数
|
static <T> java.lang.reflect.Constructor<T> |
getConstructorOrNull(java.lang.Class<T> $receiver,
java.lang.Class parameterTypes)
查找构造函数
|
static java.lang.Object |
getDefaultResult(java.lang.reflect.Method $receiver)
获得方法的默认结果值
|
static <T> T |
getDefaultValue(kotlin.reflect.KClass<T> $receiver)
获得指定类型的默认值
|
static kotlin.reflect.KFunction<?> |
getFunction(kotlin.reflect.KClass<?> $receiver,
java.lang.String name,
java.lang.Class paramTypes)
查找方法
|
static <T> kotlin.reflect.KProperty1.Getter<T,java.lang.Object> |
getGetter(kotlin.reflect.KClass<T> $receiver,
java.lang.String prop)
获得指定属性的getter
|
static <T> java.util.Map<java.lang.String,kotlin.reflect.KProperty1.Getter> |
getGetters(kotlin.reflect.KClass<T> $receiver)
获得所有属性的getter
|
static java.lang.reflect.Field |
getInheritField(java.lang.Class<?> $receiver,
java.lang.String name)
获得属性, 包含继承的
|
static <T> T |
getInterfaceDelegate(java.lang.Object $receiver,
java.lang.Class<T> p)
获得实现某接口的代理字段
泛型T就是接口, 当前类使用代理对象来实现某接口
|
static java.lang.reflect.Field |
getInterfaceDelegateField(java.lang.Class<?> $receiver,
java.lang.Class<?> p)
获得实现某接口的代理字段
|
static java.util.Collection<java.lang.reflect.Field> |
getInterfaceDelegateFields(java.lang.Class<?> $receiver)
获得所有的实现接口的代理字段
|
static java.lang.Class<?> |
getInterfaceGenricType(java.lang.Class<?> $receiver,
int interfaceIndex,
int genTypeIndex)
通过反射, 获得定义 Class 时声明的接口的泛型参数的类型
|
static java.lang.Class<?> |
getInterfaceGenricType(java.lang.Class<?> $receiver,
java.lang.Class<?> p,
int genTypeIndex)
通过反射, 获得定义 Class 时声明的接口的泛型参数的类型
|
static java.lang.invoke.MethodHandles.Lookup |
getLookup(java.lang.Class<?> $receiver)
获得类对应的MethodHandles.Lookup对象
|
static java.lang.reflect.Method |
getMethodByClassAndSignature(java.lang.String clazz,
java.lang.String methodSignature)
根据类名+方法签名来获得方法
|
static java.lang.reflect.Method |
getMethodByName(java.lang.Class<?> $receiver,
java.lang.String name)
根据方法名来获得方法
忽略参数类型, 一般只用在没有重载的方法中, 方便非java语言(如php)客户端的调用, 不用关心方法签名
|
static java.lang.reflect.Method |
getMethodBySignature(java.lang.Class<?> $receiver,
java.lang.String methodSignature)
根据方法签名来获得方法
|
static java.lang.invoke.MethodHandle |
getMethodHandle(java.lang.reflect.Method $receiver)
获得方法对应的MethodHandle对象
|
static java.util.Map<java.lang.String,java.lang.reflect.Method> |
getMethodSignatureMaps(java.lang.Class<?> $receiver)
获得当前类的方法哈希: <方法签名 to 方法>
|
static kotlin.properties.ReadWriteProperty<?,?> |
getPropDelegate(java.lang.Object $receiver,
java.lang.String prop)
获得实现属性读写的代理字段
|
static java.util.Collection<java.lang.reflect.Field> |
getPropDelegateFields(java.lang.Class<?> $receiver)
获得所有的实现属性读写的代理字段
|
static <T> kotlin.reflect.KProperty1<T,?> |
getProperty(kotlin.reflect.KClass<T> $receiver,
java.lang.String name)
查找属性
|
static java.lang.reflect.Field |
getPropoDelegateField(java.lang.Class<?> $receiver,
java.lang.String prop)
获得实现属性读写的代理字段
|
static java.lang.String |
getSignature(java.lang.reflect.Method $receiver,
boolean withClass)
获得方法签名
|
static kotlin.reflect.KFunction<?> |
getStaticFunction(kotlin.reflect.KClass<?> $receiver,
java.lang.String name,
java.lang.Class paramTypes)
查找静态方法
|
static <T> kotlin.reflect.KProperty0<?> |
getStaticProperty(kotlin.reflect.KClass<T> $receiver,
java.lang.String name)
查找静态属性
|
static java.lang.Class<?> |
getSuperClassGenricType(java.lang.Class<?> $receiver,
int genTypeIndex)
通过反射, 获得定义 Class 时声明的父类的泛型参数的类型
|
static java.lang.reflect.Field |
getWritableFinalField(java.lang.Class<?> $receiver,
java.lang.String name,
boolean inherited)
获得final的属性, 并使其可写
|
static <T> boolean |
isAbstract(java.lang.Class<T> $receiver)
是否抽象类
|
static boolean |
isStatic(java.lang.reflect.Method $receiver)
是否静态方法
|
static boolean |
isSubClass(java.lang.Class<?> $receiver,
java.lang.Class<?> superClass)
检查当前类 是否是 指定类的子类
|
static boolean |
isSuperClass(java.lang.Class<?> $receiver,
java.lang.Class<?> subClass)
检查当前类 是否是 指定类的父类
isSuperClass() 不包含当前类
isAssignableFrom() 包含当前类
|
static boolean |
matches(kotlin.reflect.KFunction<?> $receiver,
java.lang.String name,
java.lang.Class[] paramTypes)
匹配方法的名称与参数类型
|
static <T> java.lang.Object |
newInstance(kotlin.reflect.KClass<T> $receiver,
boolean needInit)
创建类的实例
参考 FSTDefaultClassInstantiator#newInstance()
|
static java.lang.Object |
resultFromFuture(java.lang.reflect.Method $receiver,
java.util.concurrent.CompletableFuture<?> resFuture)
从CompletableFuture获得方法结果值
|
static java.lang.Object |
tryClone(java.lang.Object $receiver,
boolean cloningArrayCollectionElement)
尝试调用克隆方法
1 如果是集合+数组, 则复制为新的集合+数组
2 如果实现了 Cloneable 接口, 则调用并返回 clone(), 否则直接返回 this
|
public static java.lang.Object tryClone(java.lang.Object $receiver,
boolean cloningArrayCollectionElement)
尝试调用克隆方法 1 如果是集合+数组, 则复制为新的集合+数组 2 如果实现了 Cloneable 接口, 则调用并返回 clone(), 否则直接返回 this
public static void cloneProperties(java.lang.Object $receiver,
java.lang.String props)
克隆对象属性
public static void cloneProperties(java.lang.Object $receiver,
boolean cloningArrayCollectionElement,
java.lang.String props)
克隆对象属性
public static java.lang.Class<?> classPath2class(java.lang.String $receiver)
类的相对路径转类
public static <T> T getDefaultValue(kotlin.reflect.KClass<T> $receiver)
获得指定类型的默认值
public static boolean matches(kotlin.reflect.KFunction<?> $receiver,
java.lang.String name,
java.lang.Class[] paramTypes)
匹配方法的名称与参数类型
public static kotlin.reflect.KFunction<?> getFunction(kotlin.reflect.KClass<?> $receiver,
java.lang.String name,
java.lang.Class paramTypes)
查找方法
public static kotlin.reflect.KFunction<?> getStaticFunction(kotlin.reflect.KClass<?> $receiver,
java.lang.String name,
java.lang.Class paramTypes)
查找静态方法
public static kotlin.reflect.KFunction<?> getConstructor(kotlin.reflect.KClass<?> $receiver,
java.lang.Class paramTypes)
查找构造函数
public static <T> kotlin.reflect.KProperty1<T,?> getProperty(kotlin.reflect.KClass<T> $receiver,
java.lang.String name)
查找属性
public static <T> kotlin.reflect.KProperty0<?> getStaticProperty(kotlin.reflect.KClass<T> $receiver,
java.lang.String name)
查找静态属性
public static java.lang.Object convert(kotlin.reflect.KParameter $receiver,
java.lang.String value)
转换参数类型
public static <T> java.lang.Object newInstance(kotlin.reflect.KClass<T> $receiver,
boolean needInit)
创建类的实例 参考 FSTDefaultClassInstantiator#newInstance()
public static <T> kotlin.reflect.KProperty1.Getter<T,java.lang.Object> getGetter(kotlin.reflect.KClass<T> $receiver,
java.lang.String prop)
获得指定属性的getter
public static <T> java.util.Map<java.lang.String,kotlin.reflect.KProperty1.Getter> getGetters(kotlin.reflect.KClass<T> $receiver)
获得所有属性的getter
public static boolean isStatic(java.lang.reflect.Method $receiver)
是否静态方法
public static java.lang.Object resultFromFuture(java.lang.reflect.Method $receiver,
java.util.concurrent.CompletableFuture<?> resFuture)
从CompletableFuture获得方法结果值
public static java.lang.Object getDefaultResult(java.lang.reflect.Method $receiver)
获得方法的默认结果值
public static <T> boolean isAbstract(java.lang.Class<T> $receiver)
是否抽象类
public static boolean isSubClass(java.lang.Class<?> $receiver,
java.lang.Class<?> superClass)
检查当前类 是否是 指定类的子类
public static boolean isSuperClass(java.lang.Class<?> $receiver,
java.lang.Class<?> subClass)
检查当前类 是否是 指定类的父类 isSuperClass() 不包含当前类 isAssignableFrom() 包含当前类
public static java.lang.String getSignature(java.lang.reflect.Method $receiver,
boolean withClass)
获得方法签名
public static java.util.Map<java.lang.String,java.lang.reflect.Method> getMethodSignatureMaps(java.lang.Class<?> $receiver)
获得当前类的方法哈希: <方法签名 to 方法>
public static java.lang.reflect.Method getMethodByClassAndSignature(java.lang.String clazz,
java.lang.String methodSignature)
根据类名+方法签名来获得方法
public static java.lang.reflect.Method getMethodBySignature(java.lang.Class<?> $receiver,
java.lang.String methodSignature)
根据方法签名来获得方法
public static java.lang.reflect.Method getMethodByName(java.lang.Class<?> $receiver,
java.lang.String name)
根据方法名来获得方法 忽略参数类型, 一般只用在没有重载的方法中, 方便非java语言(如php)客户端的调用, 不用关心方法签名
public static <T> java.lang.reflect.Constructor<T> getConstructorOrNull(java.lang.Class<T> $receiver,
java.lang.Class parameterTypes)
查找构造函数
public static java.lang.invoke.MethodHandles.Lookup getLookup(java.lang.Class<?> $receiver)
获得类对应的MethodHandles.Lookup对象
public static java.lang.invoke.MethodHandle getMethodHandle(java.lang.reflect.Method $receiver)
获得方法对应的MethodHandle对象
public static java.lang.Class<?> getSuperClassGenricType(java.lang.Class<?> $receiver,
int genTypeIndex)
通过反射, 获得定义 Class 时声明的父类的泛型参数的类型
public static java.lang.Class<?> getInterfaceGenricType(java.lang.Class<?> $receiver,
int interfaceIndex,
int genTypeIndex)
通过反射, 获得定义 Class 时声明的接口的泛型参数的类型
public static java.lang.Class<?> getInterfaceGenricType(java.lang.Class<?> $receiver,
java.lang.Class<?> p,
int genTypeIndex)
通过反射, 获得定义 Class 时声明的接口的泛型参数的类型
public static java.lang.reflect.Field getAccessibleField(java.lang.Class<?> $receiver,
java.lang.String name)
获得可访问的属性
public static java.lang.reflect.Field getWritableFinalField(java.lang.Class<?> $receiver,
java.lang.String name,
boolean inherited)
获得final的属性, 并使其可写
public static java.lang.reflect.Field getInheritField(java.lang.Class<?> $receiver,
java.lang.String name)
获得属性, 包含继承的
public static java.lang.reflect.Method getAccessibleMethod(java.lang.Class<?> $receiver,
java.lang.String name,
java.lang.Class parameterTypes)
获得可访问的方法
public static java.lang.reflect.Field getInterfaceDelegateField(java.lang.Class<?> $receiver,
java.lang.Class<?> p)
获得实现某接口的代理字段
public static java.util.Collection<java.lang.reflect.Field> getInterfaceDelegateFields(java.lang.Class<?> $receiver)
获得所有的实现接口的代理字段
public static <T> T getInterfaceDelegate(java.lang.Object $receiver,
java.lang.Class<T> p)
获得实现某接口的代理字段 泛型T就是接口, 当前类使用代理对象来实现某接口
public static java.lang.reflect.Field getPropoDelegateField(java.lang.Class<?> $receiver,
java.lang.String prop)
获得实现属性读写的代理字段
public static java.util.Collection<java.lang.reflect.Field> getPropDelegateFields(java.lang.Class<?> $receiver)
获得所有的实现属性读写的代理字段
public static kotlin.properties.ReadWriteProperty<?,?> getPropDelegate(java.lang.Object $receiver,
java.lang.String prop)
获得实现属性读写的代理字段