Blame view

java110-utils/src/main/java/com/java110/utils/util/Java110StringConvert.java 2.1 KB
88e030b7   王彪总   init project
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;
      }
  }