标签: reflection

.NET反射的"成本"是多少?

可能重复:
.NET反射的代价是多少?

我目前处于一种编程心态,反思是我最好的朋友.我使用它来动态加载内容,允许"松散实现"而不是严格的接口,以及许多自定义属性.

使用反射的"实际"成本是多少?

经常反映的类型是否值得缓存反射,例如我们自己的LINQ DAL目标代码在表定义的所有属性上?

缓存内存占用量是否会超过反射CPU的使用量?

.net c# reflection optimization

72
推荐指数
2
解决办法
3万
查看次数

Java反射获取所有私有字段

我想知道有没有办法在java及其类型中获取某些类的所有私有字段.

例如,假设我有一个班级

class SomeClass {
    private String aaa;
    private SomeOtherClass bbb;
    private double ccc;
}
Run Code Online (Sandbox Code Playgroud)

现在,我想获得的所有私有字段(aaa,bbb,ccc类)SomeClass(如果不知道前期所有字段的名称),并检查它们的类型.

java reflection field private

72
推荐指数
6
解决办法
6万
查看次数

从String获取类类型

我有一个String类的名称说"Ex"(没有.class扩展名).我想将它分配给Class变量,如下所示:

Class cls = (string).class
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

java reflection class

71
推荐指数
3
解决办法
11万
查看次数

使用接受字符串参数的构造函数实例化一个类对象?

我想Class使用接受单个String参数的构造函数从其对象实例化一个对象.

这是一些接近我想要的代码:

Object object = null;
Class classDefinition = Class.forName("javax.swing.JLabel");
object = classDefinition.newInstance();
Run Code Online (Sandbox Code Playgroud)

但是,它实例化JLabel没有文本的对象.我想使用JLabel接受字符串作为初始文本的构造函数.有没有办法从Class对象中选择特定的构造函数?

html java reflection constructor

71
推荐指数
2
解决办法
8万
查看次数

通过类的反射属性获取,但不是从继承的类获取

class Parent {
   public string A { get; set; }
}

class Child : Parent {
   public string B { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我只需要获得属性B,没有属性A但是

Child.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance)
Run Code Online (Sandbox Code Playgroud)

返回两个属性:/

c# reflection

71
推荐指数
3
解决办法
2万
查看次数

与使用显式类型“String”相比,为什么使用“newInstance()”方法创建字符串的行为在使用“var”时有所不同?

我正在学习 Java 中的反射。偶然间,我发现了以下对我来说意想不到的行为。

下面写的两个测试都成功。

class NewInstanceUsingReflection {
    @Test
    void testClassNewInstance()
        throws NoSuchMethodException, InvocationTargetException,
        InstantiationException, IllegalAccessException
    {
        final var input = "A string";
        final var theClass = input.getClass();
        final var constructor = theClass.getConstructor();
        final String newString = constructor.newInstance();

        assertEquals("", newString);
    }

    @Test
    void testClassNewInstanceWithVarOnly()
        throws NoSuchMethodException, InvocationTargetException,
        InstantiationException, IllegalAccessException
    {
        final var input = "A string";
        final var theClass = input.getClass();
        final var constructor = theClass.getConstructor();
        final var newString = constructor.newInstance();

        assertEquals("A string", newString);
    }
}
Run Code Online (Sandbox Code Playgroud)

除了断言之外的唯一区别是变量类型在第一个测试中是显式的,并在第二个测试中newString声明。var

我正在使用 …

java reflection string-pool

71
推荐指数
1
解决办法
2252
查看次数

获取Type的默认构造函数的最有效方法

获取System.Type的默认构造函数(即没有参数的实例构造函数)的最有效方法是什么?

我正在考虑下面的代码,但似乎应该有一个更简单,更有效的方法来做到这一点.

Type type = typeof(FooBar)
BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;
type.GetConstructors(flags)
    .Where(constructor => constructor.GetParameters().Length == 0)
    .First();
Run Code Online (Sandbox Code Playgroud)

.net c# reflection

70
推荐指数
2
解决办法
3万
查看次数

Java反射:我如何获得java类的所有getter方法并调用它们

我写了一个有很多getter的java类..现在我想获取所有getter方法并在某个时候调用它们.我知道有一些方法,比如getMethods()或getMethod(String name,Class ... parameterTypes),但是我只是想得到吸气剂...,使用正则表达式?谁能告诉我?谢谢!

java reflection

70
推荐指数
4
解决办法
8万
查看次数

在C#中使用反射来获取嵌套对象的属性

给出以下对象:

public class Customer {
    public String Name { get; set; }
    public String Address { get; set; }
}

public class Invoice {
    public String ID { get; set; }
    public DateTime Date { get; set; }
    public Customer BillTo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想用反射Invoice来获得一个Name属性Customer.这就是我所追求的,假设这段代码可行:

Invoice inv = GetDesiredInvoice();  // magic method to get an invoice
PropertyInfo info = inv.GetType().GetProperty("BillTo.Address");
Object val = info.GetValue(inv, null);
Run Code Online (Sandbox Code Playgroud)

当然,由于"BillTo.Address"不是Invoice该类的有效属性,因此失败.

所以,我尝试编写一个方法将字符串拆分成句点,并遍历对象寻找我感兴趣的最终值.它可以正常工作,但我对它并不完全满意:

public Object GetPropValue(String …
Run Code Online (Sandbox Code Playgroud)

c# reflection

69
推荐指数
6
解决办法
7万
查看次数

是否可以在运行时从Android应用程序动态加载库?

有没有办法让Android应用程序在运行时下载和使用Java库?

这是一个例子:

想象一下,应用程序需要根据输入值进行一些计算.应用程序请求输入这些值,然后检查所需的Classes或Methods是否可用.

如果没有,它将连接到服务器,下载所需的库,并在运行时加载它以使用反射技术调用所需的方法.实施可能会根据各种标准(例如下载库的用户)而发生变化.

reflection android classloader dalvik android-library

69
推荐指数
2
解决办法
4万
查看次数