java110
2021-05-15 811e8e7139ad6e331c2f84bcd5cf3f927a8b3312
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package com.java110.utils.util;
 
import org.apache.commons.beanutils.converters.AbstractConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
import java.util.Date;
 
/**
 * 自定义 String 处理
 */
public class Java110StringConvert extends AbstractConverter {
    private static Logger logger = LoggerFactory.getLogger(Java110StringConvert.class);
 
 
    /**
     * Construct a <b>java.lang.String</b> <i>Converter</i> that throws
     * a <code>ConversionException</code> if an error occurs.
     */
    public Java110StringConvert() {
        super();
    }
 
    /**
     * Construct a <b>java.lang.String</b> <i>Converter</i> that returns
     * a default value if an error occurs.
     *
     * @param defaultValue The default value to be returned
     *                     if the value to be converted is missing or an error
     *                     occurs converting the value.
     */
    public Java110StringConvert(Object defaultValue) {
        super(defaultValue);
    }
 
    @Override
    protected String convertToString(Object value) throws Throwable {
        logger.debug("convertToString当前对象类型start" + value.getClass());
 
        if (value instanceof Date) {
            return DateUtil.getFormatTimeString((Date) value, DateUtil.DATE_FORMATE_STRING_A);
        }
        logger.debug("convertToString当前对象类型" + value.getClass());
        return super.convertToString(value);
    }
 
    @Override
    protected <T> T convertToType(Class<T> type, Object value) throws Throwable {
        //System.out.printf("12313");
        logger.debug("convertToType当前对象类型start" + value.getClass());
 
        if(type.getClass().equals(String.class)) {
            if (value instanceof Date) {
                return type.cast(DateUtil.getFormatTimeString(Date.class.cast(value), DateUtil.DATE_FORMATE_STRING_A));
            }
            logger.debug("convertToType当前对象类型" + value.getClass());
            return type.cast(value.toString());
        }else {
            return null;
        }
    }
 
    @Override
    protected Class<?> getDefaultType() {
        return String.class;
    }
}