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 是按照匿名类来处理的

猜你喜欢

转载自blog.csdn.net/starzxf/article/details/81143032