Java:通过对泛型类型的反射来调用特定方法
如何对泛型类型调用特定方法?我想调用一个getter/setter方法 编辑:例如: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 */
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方法。