我需要一个包含更多参数的函数:
private GroupLayout function(Container host, Class J1, String nameofJ1, Class J2, String nameofJ2,..................Class Jn, String nameofJn) {
//body
}
一个用于更多应用程序的可定制组布局的功能。
我试过:
private GroupLayout function(Container host, Class ...arg, String ...arg1) {
//body
}
but didn't work, it said "varargs parameter must be the last parameter, and with class are some problems.
例如,我希望函数调用为:function(namepanel,jbutton,“”,jmenu,“yyy”,jcombobox,“zzz”),并在namepanel上创建一个grouplayout,jbutton名为“”,jmenu名为“yyy”,依此类推。
有人知道这个问题的解决方法吗?
2条答案
按热度按时间mum43rcc1#
可变参数
不能多次使用varargs。为什么?编译器将不知道您传入了什么参数。
请参见使用的示例
String
仅当编译器的第一个参数是String
其余的(0..n)是vararg(编译成数组):这个有多个vararg的方法不起作用,只要编译器不知道在哪里
arg1
结束和arg2
开始:因此,varargs必须始终是最后一个形式参数。
变通办法
你好像想通过一双鞋
Class
以及String
. 传递这些对的最佳方法是使用基于键值的结构Map<Class, String>
这也保证了相同数量的键和值是相等的。whlutmcx2#
他是你的朋友。
这是java builder实现。
再看看lombokbuilder注解。