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

为java中的各种用户定义类创建泛型方法,java,Java,我正在努力实现以下目标: 我有这个方法 public String methodName(Userdefinedclass.class,Userdefinedclass obj) { //some code ......... method(Userdefinedclass.class); method2(obj); } 我想推广这种方法 挑战在于这里的参数是用户定义的,即它可以更改。所以请帮忙 publicstringmethodname(c类,T对象) public <T>

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

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

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

}
我想推广这种方法

挑战在于这里的参数是用户定义的,即它可以更改。所以请帮忙

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

    return "some string";
}

void method1(Class c) 
{
   // Some stuff.
}
{ 方法1(c); 方法2(obj); 返回“somestring”; } 无效方法1(c类) { //一些东西。 }
如果要概括函数中使用的参数,可以创建一个空接口并强制userDefinedClass实现它。。或者您可以使用T来实现这一点

泛型是类型擦除,因此您不能拥有泛型类型的.class。这是因为在这种情况下,泛型会被删除为
对象
类型。因此“T.class”不起作用


因此,请使用
Class
获取类,然后使用这将保持方法签名的完整性:

public <T> String  methodName(Class<T> c, T obj)
{
   method(c);
   method2(obj);
}
publicstringmethodname(c类,T对象)
{
方法(c);
方法2(obj);
}

但是我会使用ivanovic的答案。

+1如果用户想要传递两个不同的参数,比如:
Userdefinedclass1.class,UserDefinedClassObj
感谢您的回复,如果我必须调用此函数,这是语法吗(例如:如果Animal是我的类)方法名称(动物,动物动画)