list对象转二维数组
工具类EntityToArrayUtil
/**
* @program: YeeGuideServer
* @description: list对象转二维数组 工具类
* @author: jiahao
* @create: 2019-08-06 16:54
**/
public class EntityToArrayUtil {
/**
* list对象转二维数组
*
* @param data
* @param variable
* @return
*/
public static <T> Object[][] toArray(List<T> data, String[] variable) {
GenericsUtils genericsUtils = new GenericsUtils();
//动态分配一个二维数组的
Object[][] obj = new Object[data.size()][variable.length];
for (int i = 0; i < data.size(); i++) {
final T t = data.get(i);
for (int j = 0; j < variable.length; j++) {
obj[i][j] = genericsUtils.getVariable(t, variable[j]);
}
}
return obj;
}
}
这里涉及到另外一个工具类, =====> 获取泛型变量 工具类
//泛型反射,获取变量值
obj[i][j] = genericsUtils.getVariable(t, variable[j]);
实体类ExcelTraceVO
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class ExcelTraceVO {
/**
* 经度
*/
private Double lon;
/**
* 纬度
*/
private Double lat;
/**
* 排序
*/
private Integer sort;
}
测试类
/**
* @description test
* @author jia hao
* @Date 2019/5/7 16:41
*/
@PostMapping("test")
public JsonData test(){
List<ExcelTraceVO> voList = new ArrayList<>();
for (int i = 1; i < 5; i++) {
DecimalFormat df = new DecimalFormat( "0.0000" );
final ExcelTraceVO build = ExcelTraceVO.builder()
.lon(Double.valueOf(df.format(Math.random()*100)))
.lat(Double.valueOf(df.format(Math.random()*100)))
.build();
voList.add(build);
}
String[] variable = {"lon", "lat"};
Object[][] data = EntityToArrayUtil.toArray(voList, variable);
return JsonData.ok(data);
}
返回结果
{
"code": 200,
"msg": "success",
"data": [
[
"43.127",
"3.483"
],
[
"55.2493",
"27.765"
],
[
"97.5568",
"87.5647"
],
[
"36.309",
"21.9472"
]
],
"timestamp": 1565087709005
}