草庐IT

Reflection

全部标签

reflection - 创建 KClass 的新实例

我有一个Kotlin类,其主要(也是唯一的)构造函数为空。我有这个类的引用:valkClass:KClass=MyClass::class如何使用反射创建此类的实例?在Java中我会做myClass.newInstance()但在Kotlin中我似乎需要先找到构造函数:kClass.constructors.first().call()我在somebugreports中看到了primaryConstructor的提及但它没有出现在我的IDE中。 最佳答案 在您的情况下,Java反射可能就足够了:您可以使用MyClass::class

kotlin.jvm.KotlinReflectionNotSupportedError : Kotlin reflection implementation is not found at runtime. 确保你有 kotlin-reflect.jar

编译时出现上述错误。我的gradle文件如下:-applyplugin:'com.android.application'applyplugin:'kotlin-android'applyplugin:'kotlin-android-extensions'android{compileSdkVersion23buildToolsVersion"24.0.0rc2"defaultConfig{applicationId"package.name"minSdkVersion16targetSdkVersion23versionCode6versionName"2.0"}buildTypes

kotlin.jvm.KotlinReflectionNotSupportedError : Kotlin reflection implementation is not found at runtime. 确保你有 kotlin-reflect.jar

编译时出现上述错误。我的gradle文件如下:-applyplugin:'com.android.application'applyplugin:'kotlin-android'applyplugin:'kotlin-android-extensions'android{compileSdkVersion23buildToolsVersion"24.0.0rc2"defaultConfig{applicationId"package.name"minSdkVersion16targetSdkVersion23versionCode6versionName"2.0"}buildTypes

reflection - 在 Swift 中使用反射改变属性

我正在尝试创建一个将更改对象属性的序列化程序。例子:classtestobj{varprop1:Int=3varprop2:String="Hello"varprop3:Dictionary=Dictionary()}我知道我可以使用访问属性的名称和类型reflect(testobjc())[0].1和vartester=testobj()_std_lib_DemangledTypeName(tester.prop1)但我想做的是类似vartester=testobj()for(varx:Int=0;x本质上,我想遍历为给定类列出的所有属性,并在该类的新创建对象上设置属性。任何指导将不

java - 深度反射(reflection)比较等于

我试图通过将结果对象与原始对象进行比较来验证序列化和反序列化例程。这些例程可以序列化任意和深层嵌套的类,因此我想要一个比较例程,它可以被赋予原始和最终实例,并反射性地遍历每个值类型并比较值,并迭代地深入到引用类型以比较值。我试过ApacheCommonsLangEqualsBuilder.reflectionEquals(inst1,inst2)但这似乎并没有进行非常深入的比较,它只是比较引用类型的相等性而不是更深入地研究它们:以下代码说明了我的问题。对reflectionEquals的第一次调用返回true,但第二次调用返回false。有没有任何人可以推荐的库例程?classdumm

Java Reflection,为什么在运行时保留父类(super class)型类型参数

所以java有类型删除,它删除类型参数(在运行时没有泛型类型)。有人可以解释为什么要保留父类(superclass)型类型参数吗?classStringListextendsArrayList{publicTypegetType(){Type[]typeArguments=((ParameterizedType)this.getClass().getGenericSuperclass()).getActualTypeArguments();returntypeArguments[0];}}这基本上意味着:newArrayList()//Icannotusereflectiontofin

python - 我如何反射(reflection) Django 中的属性和模型字段?

我正在尝试获取给定对象的所有现有模型字段和属性的列表。是否有一种干净的方法来检查对象,以便我可以获得字段和属性的字典。classMyModel(Model)url=models.TextField()def_get_location(self):return"%s/jobs/%d"%(url,self.id)location=property(_get_location)我想要的是返回一个看起来像这样的字典:{'id':1,'url':'http://foo','location':'http://foo/jobs/1'}我可以使用model._meta.fields来获取模型字段,但

reflection - 如何使用私有(private)构造函数反射(reflect)导入包中的类?

我正在使用reflectable库来反射(reflect)来自导入包的类型(如analysis_server_client或flutter)。我可以反射(reflection)具有公共(public)构造函数的类型,例如Notification或Request(来自analysis_server_client包)。我通过扩展这些类型然后使用superclassQuantifyCapability功能来反射(reflection)这些类型。但是,我无法反射(reflect)具有私有(private)构造函数的类型,例如Icons(来自flutter包),因为我无法扩展它们。有没有办法反射

reflection - 获取类属性

我需要一种方法来获取类的属性,因为我知道这是通过反射实现的,但我不知道如何将其应用于Flutter。这是我的课:classLogin{finalStringname;finalStringemail;finalStringtoken;finalStringrefreshToken;finalStringcreatedAt;finalStringexpiresAt;finalboolisValid;Login({this.name,this.email,this.token,this.refreshToken,this.createdAt,this.expiresAt,this.isVa

reflection - 通过反射在 dart 中通过名称作为字符串获取类的公共(public)静态字段/属性的值

假设我有一个类:classIcons{staticconstIconDatathreesixty=IconData(0xe577,fontFamily:'MaterialIcons');}现在我有一个值为“threesixty”的字符串变量:StringfieldName="threesixty";如何通过fieldName变量获取Icons类中threesixty的值?我正在使用reflectable包,并且已经在flutter中使用了ClassMirrors的其他功能,但不知道如何执行此操作。 最佳答案 您想要的需要使用反射。由