Tag: reflection

Javareflection:我怎样才能得到一个Java类的所有getter方法,并调用它们

我写了一个有很多getter的java类。现在我想要获取所有的getter方法,并在某个时候调用它们。我知道有方法,如getMethods()或getMethod(String name,Class … parameterTypes),但我只是想得到getter的确,…使用正则expression式? 任何人都可以告诉我?谢谢!

Python装饰器使function忘记它属于一个类

我想写一个装饰器来做日志logging: def logger(myFunc): def new(*args, **keyargs): print 'Entering %s.%s' % (myFunc.im_class.__name__, myFunc.__name__) return myFunc(*args, **keyargs) return new class C(object): @logger def f(): pass C().f() 我想这打印: Entering Cf 但是我却得到这个错误信息: AttributeError: 'function' object has no attribute 'im_class' 大概这是与'logging器'内'myFunc'的范围有关,但我不知道是什么。

为什么推荐使用.NET中的reflection?

使用它绝对是一个好习惯吗? 项目中需要反思的可能情况是什么?

从不同的程序集中的类名parsingtypes

我有一个方法,我需要解决一个类的types。 这个类存在于另一个程序集中,命名空间类似于: MyProject.Domain.Model 我正在尝试执行以下操作: Type.GetType("MyProject.Domain.Model." + myClassName); 如果正在执行此操作的代码与我正在尝试parsing的类的类处于相同的程序集中,则此方法效果很好,但是,如果我的类在不同的程序集中,则此代码将失败。 我相信有一个更好的方法来完成这个任务,但是我没有很多解决程序集和遍历命名空间的经验来解决我所寻找的类的types。 任何build议或技巧更完美地完成这项任务?

在.NETreflection中使用GetProperties()和BindingFlags.DeclaredOnly

如果我使用 sometype.GetProperties(); 我从types中获得所有的属性,它是父类。 不过,我只想检索在这种types(而不是父母)明确定义的属性。 我以为这是BindingFlags.DeclaredOnly选项的目的。 但是,当我尝试这个: sometype.GetProperties(BindingFlags.DeclaredOnly); 我得到0个属性。 任何人都知道我在做什么错了?

如何使用reflection在.NET中调用重载的方法

有没有办法在.NET(2.0)中使用reflection调用一个重载的方法。 我有一个应用程序dynamic实例化派生自一个公共基类的类。 出于兼容的目的,这个基类包含两个同名的方法,一个带有参数,另外一个没有。 我需要通过Invoke方法调用无参数方法。 现在,我得到的只是一个错误,告诉我我试图调用一个模糊的方法。 是的,我只能将该对象作为我的基类的一个实例,并调用我需要的方法。 最终会发生,但现在,内部并发症是不会允许的。 任何帮助将是伟大的! 谢谢。

java:获取类中的所有variables名称

我有一个类,我想find它的所有公共variables(不是函数)。 我怎么能这样做? 谢谢!

通过reflection查找可空属性的types

我通过reflection来检查对象的属性,并继续处理每个属性的数据types。 这是我的(减less的)来源: private void ExamineObject(object o) { Type type = default(Type); Type propertyType = default(Type); PropertyInfo[] propertyInfo = null; type = o.GetType(); propertyInfo = type.GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); // Loop over all properties for (int propertyInfoIndex = 0; propertyInfoIndex <= propertyInfo.Length – 1; propertyInfoIndex++) { propertyType = propertyInfo[propertyInfoIndex].PropertyType; } } 我的问题是,我最近需要处理可空属性,但我不知道如何获得可空属性的types。

如何检查给定的值是否为通用列表?

public bool IsList(object value) { Type type = value.GetType(); // Check if type is a generic list of any type } 检查给定对象是列表还是可以转换为列表的最好方法是什么?

如何使用getMethod()与原始types?

这是class级: class Foo { public void bar(int a, Object b) { } } 现在我试图从这个类中“reflection”这个方法: Class c = Foo.class; Class[] types = { … }; // what should be here? Method m = c.getMethod("bar", types);