作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有多个枚举类实现相同的接口(interface),例如interface1。
enum classA implements interface1
enum classB implements interface1
enum classC implements interface1.
我想使用泛型编写一个函数,我可以使用可变参数格式的泛型传递这些类。我已经编写了一个函数,但它一次只能使用一个类。
我的实现:
<T extends Enum<T> & interface1> void getLinksUtils(
Map<String, List<Link>> links,
Class<T> configuration) {
............ }
并将其称为:
getLinksUtils(myMap,classA.class);
getLinksUtils(myMap,classB.class);
getLinksUtils(myMap,classC.class);
但我想创建这个函数,因为我可以通过以下格式传递类:
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);
<小时/>
编辑:编译时会出现警告,但我确实必须削弱您的枚举绑定(bind)。
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);
}
}
关于java - 使用泛型在函数中传递多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23877840/
我是一名优秀的程序员,十分优秀!