JDK1.8新特性代码如何用1.7来写

小白一个,JDK1.8的新增语法这些还不了解,正在学习
如下是一个转换工具类,用JDK1.7该如何写

 public static class Functions{
        /**yyyy-MM-dd**/
        public static final Function<Object, Object> DateFormat = (Object obj)->{
            if(obj!=null){
                try{
                    return new SimpleDateFormat("yyyy-MM-dd").format(obj);
                }catch(Exception e){
                    return null;
                }
            }
            return null;
        };
        /**yyyy-MM-dd HH:mm:ss**/
        public static final Function<Object, Object> DateTimeFormat = (Object obj)->{
            if(obj!=null){
                try{
                    return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(obj);
                }catch(Exception e){
                    return null;
                }
            }
            return null;
        };
        /**true:是,false:否**/
        public static final Function<Object, Object> BooleanDefault = (Object obj)->{
            if(Boolean.TRUE.equals(obj))
                return "是";
            else if(Boolean.FALSE.equals(obj))
                return "否";
            return null;
        };
    }

这是调用的代码片段。这里的((Function)v).apply又该如何写

 else if(v instanceof Function)
                    cell.put(keyName, ((Function<Object,Object>)v).apply(BeanUtils.getPropertyDescriptor(data.getClass(), fieldName).getReadMethod().invoke(data)));
public interface Function<T, R> {
    R apply(T t);
}

(Object obj)-> {xxxx}相当于实现了Function接口匿名类的一个对象。
你可以用下面的方式代替

        new Function(){
            public Object apply(Object obj) {
                return null;
            }
        };