Java中的通用方法,确定类型

Mil*_*ous 0 java generics methods types

我希望能够在运行时detirmine我的方法调用的返回类型,但我似乎无法获得T的类型.

    public <T> T getT()
    {
        Object t = null;
        Class<?> c = t.getClass();
        System.out.println(c.getName());
        return (T) t;
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法在Java中确定运行时的T类型?

Mic*_*yan 5

您的函数将抛出NullPointerException,因为您在空指针上调用"getClass"(因为t初始化为null).此外,泛型用于提供额外的编译时类型检查.他们在运行时没有给你任何特别的东西; 泛型只是使用类型Object,但会导致使用泛型对象的代码执行隐式强制转换,并使编译器知道如何使用它.