1、对象转map代码
public class PrBeanToMapUtil {
public static Map<String, String> beanToMap(Object bean)
throws IntrospectionException, InvocationTargetException, IllegalAccessException {
Map<String, String> map = new HashMap<>(16);
if (bean != null) {
Class clazz = bean.getClass();
BeanInfo beanInfo = Introspector.getBeanInfo(clazz);
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
if (property.getName().equals("class")) {
continue;
}
Method getter = property.getReadMethod();
String value = (String)getter.invoke(bean);
map.put(property.getName(), value);
}
}
return map;
}
}
2、注解类
@Documented
@Inherited
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface PrExcelParse {
boolean () default false;
}
3、解析方法
private <T> void annotationMatch(T bo)
throws IllegalAccessException {
for (Field field : bo.getClass().getDeclaredFields()) {
if (!field.isAnnotationPresent(PrExcelCheck.class)) {
continue;
}
PrExcelCheck excelCheck = field.getAnnotation(PrExcelCheck.class);
field.setAccessible(true);
if (field.getType().equals(String.class)) {
field.set(bo, valueText);
} else if (field.getType().equals(BigDecimal.class)) {
if (NumberUtil.isNumber(valueText)) //是否为数字
} else if (field.getType().equals(Date.class)) {
field.set(bo, toDate(valueText, field));
} else if (field.getType().equals(Short.class)) {
field.set(bo, NumberUtils.toShort(valueText));
} else {
throw new BizException("未支持类型");
}
line.remove(title);
}
}
```