任何人都可以告诉我在java中使用varargs方法吗?
并且,我要求在html中有太多字段,所以我们可以使用vararg方法进行空验证,如果可能的话请告诉我怎么做?
答案 0 :(得分:1)
这是一个演示:
public void myVarargsMethod(MyObject... objects) {
if (objects.length() == 0) {
// No parameters passed to the method...
} else {
for(MyObject mo : objects) {
if (mo==null) {
// Process null value ...
} else {
// Process MyObject instance...
}
}
}
}
答案 1 :(得分:0)
有时您希望可以使用任意数量的参数创建方法。一个典型的例子是日志记录功能,它使用任意数量的占位符获取模板:
logger.log("%s: %s" , "Input", "Hello world");
logger.log("%s: %s %s", "Input", "Hello", "world");
显示log()
被调用3和4个参数,您可以通过编写多个版本来支持它:
void log(String pattern, String val1, String val2) { ... }
void log(String pattern, String val1, String val2, String val3) { ... }
...在Java的早期版本中,人们做到了这一点,但显然你不能继续添加更长的版本,并且在某些时候你会说“好吧,这很傻”,并提供:
void log(String pattern, String[] values) { ... }
......这样称呼:
logger.log("%s: %s", new String[] { "Hello", "world" });
Varargs提供了一种语法,允许调用者提供尽可能多的参数。
void log(String pattern, String... values) {
// implementation sees values as a String[]
}
...使用此版本,调用者不需要显式创建数组。可以使用任意数量的尾随参数调用它:
logger.log("%s %s %s %s %s %s %s",
"The", "quality", "of", "mercy", "is", "not", "strained.");
我没有看到varargs和HTML字段验证之间有任何特殊的关联。