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)));

1个回答

public interface Function<T, R> {
    R apply(T t);
}

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JDK1.8新特性及代码
https://blog.csdn.net/haiyoung/article/details/52693212 https://www.cnblogs.com/jacksontao/p/8608291.html https://blog.csdn.net/op134972/article/details/76408237?locationNum=1&amp;amp;fps=1 /** 函数式接口...
jdk1.8新特性
JDK1.8新特性简介剖析,仅做参考,希望大家相互学习 作为Comparator 和Runnable早期的证明,在JDK中已经定义的接口恰巧作为函数接口而与lambdas表达式兼容。同样方式可以在你自己的代码中定义任何函数接口或第三方库。 但有特定形式的函数接口,且广泛的,通用的,在之前的JD卡中并不存在。大量的接口被添加到新的java.util.function 包中。
JDK1.8新特性
(1)Jdk1.7语法增强:    Switch语句支持string类型    数字类型的下划线表示 更友好的表示方式,不过要注意下划线添加的一些标准一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法。二、Lambda 表达式在Java 8 中你就没必要使用这种传统的匿名对象的方式了,Java 8提供了更简洁的语法,l...
Jdk1.8新特性
1 接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default或static关键字即可,这个特征又叫做扩展方法。public interface Jdk8Interface {     int interfaceMethod();     default void defaultMethod(){ System.out.println(&quot;D...
java jdk1.7-1.8新特性
转自:http://www.2cto.com/kf/201307/225968.html 本文是我学习了解了jdk7和jdk8的一些新特性的一些资料,有兴趣的大家可以浏览下下面的内容。 官方文档:http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html   在jdk7的新特性方面主要有
JDK1.8的新特性
JDK1.8的十大新特性 本文主要介绍JDK1.8版本的一些新特性,乃作者笔记,仅供参考 jdk1.8新特性知识点: 1. 接口的默认方法 2. Lambda表达式 3. 函数式接口 4. 方法与构造函数引用 5. Lambda作用域 6. 局部访问变量 7. 访问对象字段与静态变量 8. 访问接口的默认方法 9. Date API 10. Annotation注解 在jdk1.8中...
jdk1.8的新特性
jdk1.8的新特性
jdk1.8 新特性
1.8 新特性 1. 速度更快 – 红黑树 2. 代码更少 – Lambda 3. 强大的Stream API – Stream 4. 便于并行 – Parallel 5. 最大化减少空指针异常 – Optional
请教各位如何用线程来写代码?
我的程序中用到了左右两个摄像头,在程序的开头(Form1_Load()) 用了以下代码以显示实时图像:rnrnprivate void Form1_Load(object sender, EventArgs e)rnrn ......rnrn showLeftVideo();rn showRightVideo();rnrn ......rnrnrn可不可以改用线程来写代码,将showLeftVideo()和showRightVideo()放在子线程中执行呢,请赐示例代码,谢谢!
OutputCache VaryByParam 如何用代码来写
<%@ OutputCache Duration="100" VaryByParam="location;count" %>rn如上面这条是设置页面缓存的rnrn那我不想在ASPX中写,我想在CS中写rn那写法是怎么样的,谢谢
jdk1.8和1.7的切换
”C:/ProgramData/Oracle/Java/javapath”删除系统path切换回1.7
如何用vb来写Excel
我想用vb编一个输入程序,想把输入的内容写入Excel中,就像写文本一样,一行完了下一行直接在后面增添,该怎么写代码?
Response.Redirect 如何用jquery来写
WEBFORM 的原代码如下rnrn AB2.Attributes.Add("onclick", "this.form.target='top'");//可以让页面新开一个页面出来 rnrn protected void AB2_Click(object sender, EventArgs e)rn rn string ID = lblID.Text;rn Response.Redirect("Pbuyamodelrdlc.aspx?ID=" + ID);rn rnrn以上用jquery 来写, 该怎么写呢
如何用异步的方式来写
[code=C#]rnrn private void buttonDel_Click(object sender, RoutedEventArgs e)rn rn RadTreeViewItem item = tvGroup.SelectedItem as RadTreeViewItem;rn t_sys_Group groupModal = item.DataContext as t_sys_Group;rnrn if (MessageBox.Show("是否删除选中的节点?", "提示", MessageBoxButton.OKCancel) == MessageBoxResult.OK)rn rn customContext.t_sys_Groups.Remove(groupModal);rn customContext.SubmitChanges();rnrnrn MessageBox.Show("提交成功!");rnrn rn rn //[color=#FF0000]我想等上面的SubmitChanges执行完了再执下面这一行代码,请问如何改成异步的方式?多谢啦[/color] rn this.showTree();rnrn rnrn void showTree()rn rn ....................rnrn rn[/code]
如何用mockito来写单元测试
一、mockito单元测试中常见的几个注解 1. @RunWith(MockitoJUnitRunner.class) 该注解的意思以什么容器来运行单元测试,容器的意思可以理解为运行环境可以解析你的mockito中的注解和语法的意思,这个注解一般加载在你写的单元测试的类上如下 @RunWith(MockitoJUnitRunner.class) public class S...
jdk 1.7的新特性讲解
jdk 1.7的新特性讲解,当中包括一些代码,大家可以作为参考。
jdk1.5、1.6、1.7新特性
一、jdk1.5新特性1.泛型2.foreach3.自动拆箱装箱(基本类型与包装类型可以混用)4.枚举5.静态导入(Static import|可以在使用静方法前不加类名)6.元数据(Metadata)7.线程池8.Java Generics9.变参(方法参数数量可以不固定多少) 二、jdk1.6新特性1.Desktop类和SystemTray类2.使用JAXB2来实现对象与XML之间的映射3...
JDK1.5、1.7、1.8新特性
JDK1.5 静态导入 1. import:表示去找哪一个类/去哪一个包下找哪些被使用到的类。 在Java语言中,java.lang包下的API,不需要导入,直接可以使用。 导入包的语法: import 被引入类的全限定名; import 包 . * 2. 静态导入 : 如果我们需要使用某一个类中的静态成员(字段/方法/内部类),此时可以使用静态导入。 import static 被引入类的全限定...
java 1.7新特性
Java JDK1.5、1.6、1.7新特性整理switch对String的支持之前就一直有一个打问号?为什么C#可以Java却不行呢?哈,不过还有JDK1.7以后Java也可以了 例如: String status = "orderState"; switch (status) { case "ordercancel":
JDK 1.7 新特性
总结JDK1.7中的新特性
jdk1.5/1.6/1.7新特性
jdk1.5 jdk1.6 jdk1.7新特性总结!很好的资源不要错过哦!
VB中的一段代码,请问如何用PB代码来写?
VB代码如下:rn For Ii = 0 To 16 rn out1 = out1 + outstr(Ii)rn If out1 >= 256 Thenrn out1 = out1 - 256rn End Ifrn Next Ii rnrn out1 = 256 - out1rn If out1 <> outstr(17) Then Exit Subrn-------------------------------------------------------------备注rnDim Ii As IntegerrnDim outstrrn outstr = MSComm1.Input //outstr是读入的是二进制数据共18个字节的长度rn out1 没有定义,直接使用rn以上这段程序是利用Mscomm32.ocx从汽车衡读取承重信息程序中的一段,以上这段是其中的数据校验过程!rnrnrn
jdk1.8 新特性之 forEach 循环遍历
1、Foreach操作List List&amp;lt;Integer&amp;gt; numbers = new ArrayList&amp;lt;&amp;gt;();   //no.1 for(Integer number : numbers){ System.out.println(number); }   //no.2 for(int index=0...
JDK1.8的并发新特性
JDK1.8中有一些并发的新特性,可以提高变成的效率。本文写的主要是LongAdder和stampedlock的特性。 多线程发生死锁时dump查看方式: 使用命令jps:如下所示 通过这个命令我们可以得到死锁号,然后再通过命令jstack查看如下所示: LongAdderLongAdder是什么? 在大数据处理过程,为了方便监控,需要统计数据,少不了原子计数器。为了尽量优化性能,需要采用
JDK1.8新特性☞函数式接口测试
/**  * JDK1.8新特性☞函数式接口测试:函数式接口指仅仅包含一个抽象方法的接口,每一个该类型的方法都会匹配到这个抽象方法  * 默认方法不算抽象方法,也可以给函数式接口添加默认方法  * 函数式接口声明:在接口上面加注解@FunctionalInterface,如果编译器发现该接口下面有多于一个的抽象方法,就会报错  *   * @author Administrator  
jdk1.8的新特性Lambda表达式(1)
1.Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 2.Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 3.使用 Lambda 表达式可以使代码变的更加简洁紧凑。 ...
JDK1.8新特性(二)
创建流 示例:Collection 提供了两个方法 stream() 与 parallelStream() List&lt;String&gt; list = new ArrayList&lt;&gt;(); Stream&lt;String&gt; stream = list.stream(); //获取一个顺序流 Stream&lt;String&gt; parallelStream = l...
JDK1.8新特性学习笔记-Stream
  流Stream其实就是数据渠道,用于操作数据源(集合,数组等)所生成的元素序列,集合是数据,流就是计算,把数据经过一系列流水线式的中间操作以后产生一个新流 。1)stream不会自己存储元素 ,2)stream不会改变源对象 3)stream操作是延迟的执行的,这意味着他们会等到需要结果时才执行(后面代码演示)。 Stream操作的三个步骤: 1.创建Stream:创建数据源(集合,数组...
jdk1.8 新特性之 如何写lambda表达式
语法 lambda表达式的特点,它的语法如下面。 parameter -&amp;gt; expression body 下面是一个lambda表达式的重要特征。 可选类型声明 - 无需声明参数的类型。编译器可以从该参数的值推断。 可选圆括号参数 - 无需在括号中声明参数。对于多个参数,括号是必需的。 可选大括号 - 表达式主体没有必要使用大括号,如果主体中含有一个单独的...
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数