在java中为各种用户定义的类创建泛型方法

时间:2012-11-21 08:59:20

标签: java

我正在努力实现以下目标: 我有这个方法

public String methodName(Userdefinedclass.class,Userdefinedclass obj)
{

//some code 
.........
method(Userdefinedclass.class);
method2(obj);

}

我想概括一下这个方法。

挑战在于这里的论点是用户定义的,即它可以改变。所以请帮忙。

4 个答案:

答案 0 :(得分:6)

public <T> String methodName(Class<T> c, T obj) 
{
    method1(c);
    method2(obj);

    return "some string";
}

void method1(Class c) 
{
   // Some stuff.
}

答案 1 :(得分:1)

泛型是类型擦除,所以你不能拥有.class的泛型类型。这就是因为在这种情况下,泛型被删除为Object类型。因此`T.class&#39;不会工作

因此,请使用Class<T>获取课程,然后继续

答案 2 :(得分:1)

这样可以保持方法签名的完整性:

public <T> String  methodName(Class<T> c, T obj)
{
   method(c);
   method2(obj);
}

但我会用伊万诺维奇的答案。

答案 3 :(得分:0)

如果要概括函数中使用的参数,可以创建一个空接口并强制userDefinedClass实现它。或者你可以用T来实现这个