学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!
基本介绍
可变参数
JDK1.5增加了新特性,可变参数,适用于参数个数不确定,类型确定的情况,java把可变参数当做数组来处理。
注意:可变参数必须位于最后一项。
原因:当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不确定,所以当其后边还有相同类型的参数时,java无法区分传入的参数是前一个可变参数,还是后一个参数,所以只能让可变参数位于最后一项。
特点
(1) 只能出现在参数列表的最后;
(2) …位于变量类型和变量名之间,前后有无空格都可以;
(3) 调用可变参数的方法时,编译器为该可变参数创建了一个数组,在方法体中以数组的形式访问可变参数。
源码引用
Character.java
private UnicodeBlock(String idName, String... aliases) {
this(idName);
for (String alias : aliases)
map.put(alias, this);
}
场景应用
加和处理
public class CharacterSource {
List<String> list = new ArrayList<>();
public static void main(String[] args) {
Character c = new Character('c');
CharacterSource source = new CharacterSource("a","b","c","d");
System.out.println(Arrays.toString(source.list.toArray()));
}
public CharacterSource(String ... alias){
for (String str : alias){
this.list.add(str);
}
}
}
参数校验
/**
* 校验json数据是否为空
* @param param
* @param paramKeyArray
* @return
*/
public static WebResult checkParam(JSONObject param, String... paramKeyArray){
WebResult webResult = new WebResult();
webResult.ok();
if(param != null) {
List<String> nullParamList = new ArrayList<>();
String paramKey = "";
for(int i = 0; i < paramKeyArray.length; i ++) {
paramKey = paramKeyArray[i];
System.out.println(param.getString(paramKey));
if(StringUtils.isEmpty(param.getString(paramKey))){
nullParamList.add(paramKey);
}
}
if(! nullParamList.isEmpty()) {
StringBuffer sb = new StringBuffer();
sb.append("参数[");
int i = 0;
for(String s : nullParamList) {
if(i != 0) {
sb.append(",");
}
sb.append(s);
i ++;
}
sb.append("]不能为空");
webResult= new WebResult();
webResult.fail(sb.toString());
}
}
return webResult;
}