Java 使用泛型在函数中传递多个类

Java 使用泛型在函数中传递多个类,java,generics,Java,Generics,我有多个enum类实现同一个接口,比如interface1 enum classA implements interface1 enum classB implements interface1 enum classC implements interface1. 我想用泛型编写一个函数,在这里我可以用varargs格式的泛型传递这些类。我已经写了一个函数,但一次只能用一个类 我的实施: <T extends Enum<T> & interface1> voi

我有多个enum类实现同一个接口,比如interface1

enum classA implements interface1
enum classB implements interface1
enum classC implements interface1.
我想用泛型编写一个函数,在这里我可以用varargs格式的泛型传递这些类。我已经写了一个函数,但一次只能用一个类

我的实施:

 <T extends Enum<T> & interface1> void getLinksUtils(
        Map<String, List<Link>> links,
        Class<T> configuration) {

                    ............ }
但我想做这个函数,因为我可以通过以下格式的类:

getLinksUtils(myMap,classA.class,classB.class,classC.class);

有人能建议我应该做些什么更改,或者用其他有趣的方法来做吗。

没有更多的上下文,我自己无法尝试,但类似的东西应该在1.5或更高版本中使用:

 <T extends Enum<T> & interface1> void getLinksUtils(Map<String, List<Link>> links, T ... configurations) {
     //add code here
     }
 getLinksUtils(myMap,classA,classB,classC);
void getLinksUtils(映射链接、T…配置){
//在这里添加代码
}
getLinksUtils(myMap、classA、classB、classC);

编辑: 这是一个警告,但我不得不削弱你的枚举范围

import java.util.List;
import java.util.Map;
interface Interface1{

}
enum ClassA implements Interface1{

}
enum ClassB implements Interface1{

}
class Link{

}
public class test {


     <T extends Enum<?> & Interface1> void getLinksUtils(Map<String, List<Link>> links, T ... configurations) {
         //add code here
     }
     static void main(String ...args){
         ClassA config1 = null;
         ClassB config2 = null;
         Map<String,List<Link>> links = null;
         (new test()).getLinksUtils(links,config1,config2);
     }

}
import java.util.List;
导入java.util.Map;
接口1{
}
enum ClassA实现接口1{
}
枚举类B实现接口1{
}
类链接{
}
公开课考试{

所以你需要一个变量方法;与泛型无关。正如你所说,这与varargs有什么不同?你只需要
Class…
,而没有看到相关的代码,我们无法帮助你诊断这个问题。谢谢..但这不起作用。我已经尝试过了。请告诉我你需要什么进一步的信息。这个类和我界面很大,贴出来都有点难。我做了一些编辑,这更接近你要找的吗?
import java.util.List;
import java.util.Map;
interface Interface1{

}
enum ClassA implements Interface1{

}
enum ClassB implements Interface1{

}
class Link{

}
public class test {


     <T extends Enum<?> & Interface1> void getLinksUtils(Map<String, List<Link>> links, T ... configurations) {
         //add code here
     }
     static void main(String ...args){
         ClassA config1 = null;
         ClassB config2 = null;
         Map<String,List<Link>> links = null;
         (new test()).getLinksUtils(links,config1,config2);
     }

}