Questions tagged «reflection»

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



7
反思有多慢
我最近创建了一个接口层,以区分DataAccessProvider和我们的业务逻辑层。通过这种方法,我们可以随时通过更改Web / App.Config中的值来更改对DataAccessProvider的选择。(如果需要,可以提供更多详细信息)。 无论如何,为了做到这一点,我们使用反射来完成我们可以使用的DataProvider类。 /// <summary> /// The constructor will create a new provider with the use of reflection. /// If the assembly could not be loaded an AssemblyNotFoundException will be thrown. /// </summary> public DataAccessProviderFactory() { string providerName = ConfigurationManager.AppSettings["DataProvider"]; string providerFactoryName = ConfigurationManager.AppSettings["DataProviderFactory"]; try { activeProvider = Assembly.Load(providerName); …


8
如何让Java方法返回任何类型的通用列表?
我想写一个方法,可以返回java.util.List任何类型的a ,而无需进行类型转换: List<User> users = magicalListGetter(User.class); List<Vehicle> vehicles = magicalListGetter(Vehicle.class); List<String> strings = magicalListGetter(String.class); 方法签名是什么样的?可能是这样的: public List<<?> ?> magicalListGetter(Class<?> clazz) { List<?> list = doMagicalVooDooHere(); return list; }


6
如何检查对象是否为某种类型的数组?
这工作正常: var expectedType = typeof(string); object value = "..."; if (value.GetType().IsAssignableFrom(expectedType)) { ... } 但是我如何检查value是否是一个没有设置的字符串数组 expectedType来typeof(string[])?我想做类似的事情: var expectedType = typeof(string); object value = new[] {"...", "---"}; if (value.GetType().IsArrayOf(expectedType)) // <--- { ... } 这可能吗?
70 c#  .net  arrays  reflection  types 


2
从C#的基类中,获取派生类型?
假设我们有以下两个类: public class Derived : Base { public Derived(string s) : base(s) { } } public class Base { protected Base(string s) { } } 我怎样才能从内部的构造函数中找出Base那Derived是调用?这是我想出的: public class Derived : Base { public Derived(string s) : base(typeof(Derived), s) { } } public class Base { protected Base(Type type, string s) …

6
如何找到实现给定接口的所有类?
在给定的名称空间下,我有一组实现接口的类。叫它ISomething。我有另一个类(我们称之为CClass),它知道ISomething但不知道实现该接口的类。 我希望CClass查找的所有实现ISomething,实例化它的一个实例并执行该方法。 有人对使用C#3.5做到这一点有想法吗?
69 c#  reflection 

3
获取子类的重写函数
有没有办法在Python中获取子类的所有替代函数? 例: class A: def a1(self): pass def a2(self): pass class B(A): def a2(self): pass def b1(self): pass 在这里,我想获得一个列表["a2"]的类的对象B(或类对象本身),因为类B重写只有一个方法,即a2。


1
用反射打破JIT优化
当为高度并发的单例类研究单元测试时,我偶然发现了以下奇怪的行为(在JDK 1.8.0_162上进行了测试): private static class SingletonClass { static final SingletonClass INSTANCE = new SingletonClass(0); final int value; static SingletonClass getInstance() { return INSTANCE; } SingletonClass(int value) { this.value = value; } } public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { System.out.println(SingletonClass.getInstance().value); // 0 // Change the instance to a …
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.