[Ljava.lang.String; cannot be cast to java.lang.String错误

今天使用request.getParameterMap()获得Map中的数据时,使用 

Map map = request.getParameterMap();

method.invoke(this,map.get(fieldName));时

报[Ljava.lang.String; cannot be cast to java.lang.String错误。

想起来,原来得到的是一个String数组。所以写了个函数

private String join(Object obj) {
	if (obj instanceof String[]) {
		String[] objArr = (String[]) obj;
		int length = objArr.length;
		if (length == 1) {
			return objArr[0];
		} else {
			StringBuffer sb = new StringBuffer();
			for (String string : objArr) {
				sb.append("#").append(string);
			}
			return sb.substring(1);
		}
	}
	return (String)obj;
}

 然后写成method.invoke(this, join(map.get(fieldName)));

这样就好啦!酷

你可能感兴趣的:([Ljava.lang.String; cannot be cast to java.lang.String错误)