1.统一返回格式
public class ResultUtil {
public static Result success() {
return success(null);
}
public static Result success(Object object, String msg) {
Result res = new Result();
res.setState(ErrorEnum.SUCCESS.getCode());
res.setMsg(msg);
res.setData(object);
return res;
}
public static Result success(Object object) {
Result res = new Result();
res.setState(ErrorEnum.SUCCESS.getCode());
res.setMsg("操作成功");
res.setData(object);
return res;
}
public static Result error(Integer code, String msg) {
Result res = new Result();
res.setState(code);
res.setMsg(msg);
res.setData(null);
return res;
}
public static Result error(String msg) {
Result res = new Result();
res.setState(ErrorEnum.UNKONW_ERROR.getCode());
res.setMsg(msg);
res.setData(null);
return res;
}
public static Result error(ErrorEnum errorEnum) {
Result res = new Result();
res.setState(errorEnum.getCode());
res.setMsg(errorEnum.getMsg());
res.setData(null);
return res;
}
}
2.未知类型集合转换为指定类的集合
使用场景: SQL拼装的数据返回后,可转换为指定类型的类的集合,SQL返回的字段以及顺序要和类中的字段一致
public class ListToBeansUtil {
static final String GET = "get";
static final String SET = "set";
public static <T> List<T> toBeans(List<Object[]> list, Class<T> clazz) {
try {
if (list == null)
return new ArrayList<>();
List<T> items = new ArrayList<>();
for (Object[] object : list) {
items.add(toBean(object, clazz));
}
return items;
} catch (Exception eh) {
String hh= eh.getLocalizedMessage();
}
return null;
}
public static <T> T toBean(Object[] objects, Class<T> clazz) {
try {
if (objects == null)
return null;
T t = clazz.newInstance();
for (int i = 0, j = clazz.getDeclaredFields().length; i < j; i++) {
if (i > objects.length) continue;
Field field = clazz.getDeclaredFields()[i];
// getMethod(t, SET + field.getName().substring(0, 1).toUpperCase() + field.getName().substring(1))
// .invoke(t, objects[i]);
Object value = null;
if (field.getType() == String.class)
value = objects[i]==null?"":objects[i] + "";
if (field.getType() == Integer.class || field.getType() == int.class)
value = Integer.valueOf(objects[i].toString());
if (field.getType() == Date.class){
if (StringUtils.isNullOrEmpty(objects[i].toString())){
value = null;
}else{
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
value = simpleDateFormat.parse(objects[i].toString());
}
}
getMethod(t, SET + field.getName().substring(0, 1).toUpperCase() + field.getName().substring(1))
.invoke(t, value);
}
return t;
} catch (Exception eh) {
System.out.print(eh);
}
return null;
}
private static <T> Method getMethod(T instance, String methodName) {
return getMethod(instance, instance.getClass(), methodName);
}
private static <T> Method getMethod(T instance, Class<?> clazz, String methodName) {
Method method = null;
for (Method m : clazz.getDeclaredMethods()) {
String name = m.getName();
if (name.equalsIgnoreCase(methodName)) {
method = m;
break;
}
}
if (method == null && clazz.getSuperclass() != null) {
method = getMethod(instance, clazz.getSuperclass(), methodName);
}
return method;
}
}
3.Json处理
public class JsonUtils {
private static ObjectMapper objectMapper = new ObjectMapper();
public static <T> String bean2Json(T bean) {
try {
return objectMapper.writeValueAsString(bean);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static String map2Json(Map map) {
try {
return objectMapper.writeValueAsString(map);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static String list2Json(List list) {
try {
return objectMapper.writeValueAsString(list);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static <T> T json2Bean(String json, Class<T> beanClass) {
try {
objectMapper.configure(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS, true) ;
objectMapper.configure( JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true );
return objectMapper.readValue(json, beanClass);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static <T> List<T> json2List(String json, Class<T> beanClass) {
try {
return (List<T>) objectMapper.readValue(json, getCollectionType(List.class, beanClass));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static Map json2Map(String json) {
try {
return (Map) objectMapper.readValue(json, Map.class);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
return objectMapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
}
}