Questions tagged «reflection»

反射是程序在运行时观察和/或修改其结构和/或行为的能力。反射取决于支持的编程语言-请在使用此标记时标记正在使用的编程语言。


11
使用Java反射更改私有静态最终字段
我有一堂课private static final,但不幸的是,我需要在运行时更改它。 使用反射我得到这个错误: java.lang.IllegalAccessException: Can not set static final boolean field 有什么办法可以改变价值? Field hack = WarpTransform2D.class.getDeclaredField("USE_HACK"); hack.setAccessible(true); hack.set(null, true);




10
Reflector的开源替代品?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 只是问问是否有人知道RedGate的Reflector的开源替代品?我对检查类似于Reflector的工具的实际工作方式很感兴趣。 请注意,如果您知道Reflector 的免费但非开源替代品,则可以回答以下相关问题: 有什么比.NET Reflector好? 摘要-2011年5月11日更新 建议的各种开源项目和工具的快速汇总: 通用编译器基础结构(CCI) 单声道塞西尔 ILSpy dnSpy(ILSpy的 fork,项目比原始项目更活跃) Dotnet IL编辑器(DILE) IL视图 Monoflector(自2011年4月起不再有效) 以下资源也可能是您感兴趣的: TypeView.cs Jason Haley关于拆解.NET的说明 Adrian Bank在最近的博客文章中总结了许多Reflector替代方案,包括以下未提及的几种选择。 马克·利希滕贝格(Mark Lichtenberg)的详细博客文章,将几种开源替代方案(使用MonoDevelop的DILE,ILSpy和Mono Cecil)与Reflector进行了比较。

16
如何列出Python模块中的所有功能?
我的系统上安装了python模块,我希望能够看到其中可用的函数/类/方法。 我想在每个函数上调用doc函数。在ruby中,我可以执行ClassName.methods之类的操作来获取该类上所有可用方法的列表。python中是否有类似的东西? 例如。就像是: from somemodule import foo print foo.methods # or whatever is the correct method to call

15
Java字符串真的不可变吗?
我们都知道这String在Java 中是不可变的,但是请检查以下代码: String s1 = "Hello World"; String s2 = "Hello World"; String s3 = s1.substring(6); System.out.println(s1); // Hello World System.out.println(s2); // Hello World System.out.println(s3); // World Field field = String.class.getDeclaredField("value"); field.setAccessible(true); char[] value = (char[])field.get(s1); value[6] = 'J'; value[7] = 'a'; value[8] = 'v'; value[9] = 'a'; value[10] = …

3
Go中标签的用途是什么?
在Go语言规范中,它提到了标签的简要概述: 字段声明后可以跟一个可选的字符串文字标签,该标签成为相应字段声明中所有字段的属性。这些标签通过反射界面可见,但在其他情况下将被忽略。 // A struct corresponding to the TimeStamp protocol buffer. // The tag strings define the protocol buffer field numbers. struct { microsec uint64 "field 1" serverIP6 uint64 "field 2" process string "field 3" } 这是IMO的简短说明,我想知道是否有人可以为我提供这些标签的用途?
392 go  reflection  struct 


14
为什么C ++没有反射?
这是一个有些奇怪的问题。我的目标是理解语言设计决策并确定C ++中反思的可能性。 为什么C ++语言委员会不致力于在语言中实现反射?使用不在虚拟机上运行的语言(如Java)进行反射是否太困难了? 如果要实现对C ++的反思,将面临哪些挑战? 我猜想反射的用途是众所周知的:编辑器可以更容易编写,程序代码会更小,可以为单元测试生成模拟等等。但是,如果您也可以评论反射的使用,那就太好了。
337 c++  reflection 

5
如何检查类型是子类型还是对象的类型?
要检查一个类型是否是C#中另一个类型的子类,很简单: typeof (SubClass).IsSubclassOf(typeof (BaseClass)); // returns true 但是,这将失败: typeof (BaseClass).IsSubclassOf(typeof (BaseClass)); // returns false 有没有办法在不使用OR运算符或扩展方法的情况下检查类型是否是基类本身的子类或基类?
335 c#  reflection  types  subclass 

11
如何使用反射调用私有方法?
我的课程中有一组私有方法,我需要根据输入值动态调用一个。调用代码和目标方法都在同一实例中。代码如下: MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType); dynMethod.Invoke(this, new object[] { methodParams }); 在这种情况下,GetMethod()将不会返回私有方法。BindingFlags我需要提供什么GetMethod()以便它可以定位私有方法?

10
使用反射设置对象属性
在C#中,有没有一种方法可以使用反射来设置对象属性? 例如: MyObject obj = new MyObject(); obj.Name = "Value"; 我想开始obj.Name思考。就像是: Reflection.SetProperty(obj, "Name") = "Value"; 有办法吗?

13
什么会导致java.lang.reflect.InvocationTargetException?
好吧,我试图理解并阅读可能导致它的原因,但是我却无法理解: 我的代码中有这个地方: try{ .. m.invoke(testObject); .. } catch(AssertionError e){ ... } catch(Exception e){ .. } 事实是,当它尝试调用某个方法时,它会抛出InvocationTargetException而不是其他预期的异常(特别是ArrayIndexOutOfBoundsException)引发 。我实际上知道调用了什么方法,所以我直接转到此方法代码,并为假定要抛出的行添加了一个try-catch块 ArrayIndexOutOfBoundsException,它确实ArrayIndexOutOfBoundsException按预期抛出了。然而,当它上升时,以某种方式InvocationTargetException在catch(Exception e) e 上面的代码中进行更改是InvocationTargetException不ArrayIndexOutOfBoundsException 符合预期的。 是什么原因导致这种行为的?我该如何检查?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.