java new interface 的處理
阿新 • • 發佈:2018-11-05
在 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 是按照匿名類來處理的