Java:通过对泛型类型的反射来调用特定方法

Java:通过对泛型类型的反射来调用特定方法,java,generics,reflection,Java,Generics,Reflection,如何对泛型类型调用特定方法?我想调用一个getter/setter方法 编辑:例如: class BurningSun<T> { public void kitchenSink() { Class c = Class.forName(/*What to put here for <T> ?*/) /* Reflections code */

如何对泛型类型调用特定方法?我想调用一个getter/setter方法

编辑:例如:

class BurningSun<T>
{ 
    public void kitchenSink()
    {
        Class c = Class.forName(/*What to put here for <T> ?*/)
                /*
                Reflections code
                */
    }
}
class BurningSun
{ 
公共厨房水槽()
{
Class c=Class.forName(/*在这里放什么?*/)
/*
反射代码
*/
}
}

嗯,那么bean的getter方法是如何在各种框架中调用和设置的呢?

所有基于反射的方法调用最简单的就是将对象推入方法中,祈祷它能工作。因此,请投下并祈祷好运。

所有基于反射的方法调用最简单的方法是将对象推入方法中,祈祷它能工作。因此,cast&祈祷好运。

在泛型类型中,如果没有人告诉您类型参数的名称,则无法在运行时获取该名称

在运行时,
BurningSun
BurningSun
是完全等效的,您甚至可以将其中一个强制转换为另一个(尽管这不是类型安全的)

因此,通常,如果您确实需要泛型对象中类型参数的类对象,您可以让其他人在构造函数中为您提供它

class BurningSun<T> {


    private Class<T> paramClass;

    public BurningSun(Class<T> pClass) {
        this.paramClass = pClass;
    }

    public void kitchenSink() {
        T t = paramClass.newInstance();
    }
}
class BurningSun{
私人类;
公共焚烧炉(P类){
this.paramClass=pClass;
}
公共厨房水槽(){
T=paramClass.newInstance();
}
}

(您需要在此捕获或声明一些异常。)

在泛型类型中,如果没有人告诉您,则无法在运行时获取类型参数的名称

在运行时,
BurningSun
BurningSun
是完全等效的,您甚至可以将其中一个强制转换为另一个(尽管这不是类型安全的)

因此,通常,如果您确实需要泛型对象中类型参数的类对象,您可以让其他人在构造函数中为您提供它

class BurningSun<T> {


    private Class<T> paramClass;

    public BurningSun(Class<T> pClass) {
        this.paramClass = pClass;
    }

    public void kitchenSink() {
        T t = paramClass.newInstance();
    }
}
class BurningSun{
私人类;
公共焚烧炉(P类){
this.paramClass=pClass;
}
公共厨房水槽(){
T=paramClass.newInstance();
}
}

(您需要在此处捕获或声明一些异常。)

反射是一种运行时功能,因此泛型没有什么区别。i、 这与对非泛型类型执行此操作相同。不,这是一个标准的getter方法。反射是一个运行时功能,因此泛型没有什么区别。i、 这与对非泛型类型执行此操作相同。不,这是一个标准的getter方法。