我见过类似的问题,但它们并没有太大帮助。

例如,我有这个通用类:

public class ContainerTest<T>
{

    public void doSomething()
    {
        //I want here to determinate the Class of the type argument (In this case String)
    }
}

和另一个使用此Container类的类
public class TestCase
{

    private ContainerTest<String> containerTest;

    public void someMethod()
    {
        containerTest.doSomething();
    }
}

是否可以在doSomething()方法中确定类型参数的类,而无需让具有明确的变量/字段类型或ContainerTest类中的任何构造函数

更新:ContainerTest类的格式已更改

最佳答案

唯一的方法是将类存储在实例变量中,并要求其作为构造函数的参数:

public class ContainerTest<T>
{
    private Class<T> tClass;
    public ContainerTest(Class<T> tClass) {
        this.tCLass = tClass;
    }

    public void doSomething()
    {
        //access tClass here
    }
}

关于java - 如何在Java泛型中获取类型变量的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15084670/

10-13 00:41