Questions tagged «reflection»

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

7
有什么方法可以调用私有方法吗?
我有一个使用XML和反射将Objects 返回到另一个类的类。 通常,这些对象是外部对象的子字段,但是有时我想即时生成它。我已经尝试过类似的方法,但无济于事。我相信这是因为Java不允许您访问private进行反射的方法。 Element node = outerNode.item(0); String methodName = node.getAttribute("method"); String objectName = node.getAttribute("object"); if ("SomeObject".equals(objectName)) object = someObject; else object = this; method = object.getClass().getMethod(methodName, (Class[]) null); 如果提供的方法正确private,则失败NoSuchMethodException。我可以通过制作方法来解决它public,或者制作另一个类来派生它。 长话短说,我只是想知道是否存在private一种通过反射访问方法的方法。
146 java  reflection  private 


18
使用反射获取Java中通用参数的类型
是否可以获取通用参数的类型? 一个例子: public final class Voodoo { public static void chill(List<?> aListWithTypeSpiderMan) { // Here I'd like to get the Class-Object 'SpiderMan' Class typeOfTheList = ???; } public static void main(String... args) { chill(new ArrayList<SpiderMan>()); } }

8
Java思考:如何获取变量的名称?
使用Java Reflection,是否可以获得本地变量的名称?例如,如果我有这个: Foo b = new Foo(); Foo a = new Foo(); Foo r = new Foo(); 是否有可能实现一种可以找到这些变量名称的方法,如下所示: public void baz(Foo... foos) { for (Foo foo: foos) { // Print the name of each foo - b, a, and r System.out.println(***); } } 编辑:这个问题不同于Java中是否有办法找到传递给函数的变量的名称?因为它更纯粹地问一个问题,即一个人是否可以使用反射来确定局部变量的名称,而另一个问题(包括公认的答案)则更侧重于测试变量的值。
139 java  reflection 

5
测试对象在C#中是否为通用类型
我想执行一个对象是否为通用类型的测试。我已经尝试了以下方法,但均未成功: public bool Test() { List<int> list = new List<int>(); return list.GetType() == typeof(List<>); } 我做错了什么以及如何执行此测试?
134 c#  .net  generics  reflection  types 


8
反射通用获取字段值
我试图通过反射接收字段值。问题是我不知道字段类型,必须在获取值时决定它。 这段代码会导致以下异常: 无法将java.lang.String字段com .... fieldName设置为java.lang.String Field field = object.getClass().getDeclaredField(fieldName); field.setAccessible(true); Class<?> targetType = field.getType(); Object objectValue = targetType.newInstance(); Object value = field.get(objectValue); 我尝试进行转换,但出现编译错误: field.get((targetType)objectValue) 要么 targetType objectValue = targetType.newInstance(); 我怎样才能做到这一点?
132 java  reflection 

4
如何反映动态对象的成员?
我需要从使用.NET 4中的dynamic关键字声明的对象中获取属性及其值的字典吗?似乎为此使用反射将不起作用。 例: dynamic s = new ExpandoObject(); s.Path = "/Home"; s.Name = "Home"; // How do I enumerate the Path and Name properties and get their values? IDictionary<string, object> propertyValues = ???
131 c#  dynamic  reflection 

14
使用Java Reflection检索继承的属性名称/值
我有一个Java对象'ChildObj',它是从'ParentObj'扩展而来的。现在,是否可以使用Java反射机制来检索ChildObj的所有属性名称和值,包括继承的属性? Class.getFields为我提供了公共属性的数组,而Class.getDeclaredFields为我提供了所有字段的数组,但是它们都不包含继承的字段列表。 还有什么方法可以检索继承的属性?


4
通过反射调用吸气剂的最佳方法
我需要获取具有特定批注的字段的值,因此通过反射,我能够获取此Field Object。问题是,尽管我事先知道它将始终具有getter方法,但该字段将始终是私有的。我知道我可以使用setAccesible(true)并获取它的值(当没有PermissionManager时),尽管我更喜欢调用它的getter方法。 我知道可以通过查找“ get + fieldName”来查找该方法(尽管例如,我知道布尔字段有时被命名为“ is + fieldName”)。 我想知道是否有更好的方法来调用此getter(许多框架使用getter / setter访问属性,所以它们可能以另一种方式使用)。 谢谢
127 java  reflection  getter 

5
是否可以通过反思设置私有财产?
我可以通过反思设置私有财产吗? public abstract class Entity { private int _id; private DateTime? _createdOn; public virtual T Id { get { return _id; } private set { ChangePropertyAndNotify(ref _id, value, x => Id); } } public virtual DateTime? CreatedOn { get { return _createdOn; } private set { ChangePropertyAndNotify(ref _createdOn, value, x …



5
为什么某些C#lambda表达式可编译为静态方法?
如您在下面的代码中看到的,我已将Action<>对象声明为变量。 有人能让我知道为什么此动作方法委托的行为类似于静态方法吗? 为什么返回true以下代码? 码: public static void Main(string[] args) { Action<string> actionMethod = s => { Console.WriteLine("My Name is " + s); }; Console.WriteLine(actionMethod.Method.IsStatic); Console.Read(); } 输出:
122 c#  .net  reflection  lambda 

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.