1. 程式人生 > >java new interface 的處理

java new interface 的處理

在 spring boot 中,需要重寫 WebMvcConfigurerAdapter 抽像類,來定義自己的一些處理邏輯

@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter {

	
	@Bean 
	public Converter<String, Date> stringToDate(){
		return new Converter<String, Date>() {
			@Override
			public Date convert(String source) {
				if(StringUtils.isNotEmpty(source) && source.matches("^\\d{4}-\\d{2}-\\d{2}[^\\r\\t]*")) {
					try {
						System.out.println("source=" + source);
						return DateUtil.parse(source);
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
				return null;
			}
		};
	}

}

 

檢視編譯後的 class ,多了一個 MyWebAppConfigurer$1.class ,反編譯的的程式碼如下


class MyWebAppConfigurer$1
  implements Converter<String, Date>
{
  MyWebAppConfigurer$1(MyWebAppConfigurer paramMyWebAppConfigurer) {}
  
  public Date convert(String source)
  {
    if ((StringUtils.isNotEmpty(source)) && (source.matches("^\\d{4}-\\d{2}-\\d{2}[^\\r\\t]*"))) {
      try
      {
        System.out.println("source=" + source);
        return DateUtil.parse(source);
      }
      catch (Exception e)
      {
        e.printStackTrace();
      }
    }
    return null;
  }
}

說明 java 是按照匿名類來處理的