标签: reflection

什么是反思,为什么它有用?

什么是反思,为什么它有用?

我对Java特别感兴趣,但我认为在任何语言中原则都是一样的.

java reflection terminology

2011
推荐指数
19
解决办法
85万
查看次数

如何在Java中创建通用数组?

由于Java泛型的实现,您不能拥有这样的代码:

public class GenSet<E> {
    private E a[];

    public GenSet() {
        a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在保持类型安全的同时实现这一点?

我在Java论坛上看到了这样的解决方案:

import java.lang.reflect.Array;

class Stack<T> {
    public Stack(Class<T> clazz, int capacity) {
        array = (T[])Array.newInstance(clazz, capacity);
    }

    private final T[] array;
}
Run Code Online (Sandbox Code Playgroud)

但我真的不知道发生了什么.

java arrays generics reflection instantiation

1045
推荐指数
15
解决办法
74万
查看次数

如何使用反射来调用泛型方法?

当在编译时未知类型参数但是在运行时动态获取时,调用泛型方法的最佳方法是什么?

考虑以下示例代码 - 在Example()方法内部,GenericMethod<T>()使用Type存储在myType变量中调用的最简洁方法是什么?

public class Sample
{
    public void Example(string typeName)
    {
        Type myType = FindType(typeName);

        // What goes here to call GenericMethod<T>()?
        GenericMethod<myType>(); // This doesn't work

        // What changes to call StaticMethod<T>()?
        Sample.StaticMethod<myType>(); // This also doesn't work
    }

    public void GenericMethod<T>()
    {
        // ...
    }

    public static void StaticMethod<T>()
    {
        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

c# generics reflection

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

使用C#中的反射从字符串中获取属性值

我正在尝试使用我的代码中的Reflection 1示例实现数据转换.

GetSourceValue函数有一个比较各种类型的开关,但我想删除这些类型和属性,并GetSourceValue只使用一个字符串作为参数获取属性的值.我想在字符串中传递一个类和属性并解析属性的值.

这可能吗?

1个 原始博客文章的Web Archive版本

c# reflection

860
推荐指数
12
解决办法
68万
查看次数

如何获取代码所在的程序集路径?

有没有办法获取当前代码所在的程序集的路径?我不想要调用程序集的路径,只需要包含代码的路径.

基本上我的单元测试需要读取一些相对于dll的xml测试文件.无论测试dll是从TestDriven.NET,MbUnit GUI还是其他东西运行,我都希望路径始终正确解析.

编辑:人们似乎误解了我的要求.

我的测试库位于说

C:\项目\ MyApplication的\ daotests\BIN \调试\ daotests.dll

我想得到这条道路:

C:\项目\ MyApplication的\ daotests\BIN \调试\

当我从MbUnit Gui运行时,到目前为止这三个建议都让我失望:

  • Environment.CurrentDirectory 给出c:\ Program Files\MbUnit

  • System.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location 给出C:\ Documents and Settings\george\Local Settings\Temp\....\DaoTests.dll

  • System.Reflection.Assembly.GetExecutingAssembly().Location 与前一个相同.

.net c# reflection

746
推荐指数
20
解决办法
58万
查看次数

如何从Type创建新的对象实例

人们可能并不总是Type在编译时知道对象,但可能需要创建一个实例Type.你如何从一个新的对象实例Type

.net c# reflection performance types

695
推荐指数
11
解决办法
47万
查看次数

将方法名称作为字符串给出时,如何调用Java方法?

如果我有两个变量:

Object obj;
String methodName = "getName";
Run Code Online (Sandbox Code Playgroud)

在不知道类的情况下obj,如何调用其上标识的方法methodName

被调用的方法没有参数和String返回值.它是Java bean的getter.

java reflection invoke

655
推荐指数
15
解决办法
84万
查看次数

检查是否定义了变量?

如何检查Ruby中是否定义了变量?有isset可用的类型方法吗?

ruby reflection

571
推荐指数
10
解决办法
32万
查看次数

563
推荐指数
9
解决办法
47万
查看次数

如何确定类型是否实现了具有C#反射的接口

是否反映C#报价的方式来确定是否给予一些System.Type款型的一些接口?

public interface IMyInterface {}

public class MyType : IMyInterface {}

// should yield 'true'
typeof(MyType)./* ????? */MODELS_INTERFACE(IMyInterface);
Run Code Online (Sandbox Code Playgroud)

c# reflection interface

527
推荐指数
11
解决办法
20万
查看次数