Java8,静态默认方法,Lambd继承接口写法,与代码覆盖率测试
来源:互联网 发布:保罗皮尔斯知乎 编辑:程序博客网 时间:2024/06/05 19:07
接口在Java8新特性中,可以用default修饰方法,可以写方法体,实现代码,子类不必强制重写,可调用。Java8接口还可以写静态方法体,可以调用。
接口的实现方式:
第一种方式:写实现类实现
第二种方法:匿名内部类
new Testmpl(){
}
Lambd表达式适用场景:接口中只有一个方法
publi class shoupiaoyuan{
public static void test(Testmpl a);
public static void main(String[] args){
test(()->{...};);
}
}
为什么可以这样写呢?
因为调用test();就相当于是实现了,test的参数要求是接口,以前的接口2中传入实现类或是传入匿名接口实现,而Lambd就相当于匿名内部类。
Lambd在另一种情况下另一种写法:
test(()->...);中间,中间没有括号了,不过没啥变化,详细看下,这Lambd去掉括号适用场景,只有一个接口并且接口中只有一句代码,就可以去掉括号了。
Lambd参数写法
test((String a)->...);
假设上述空参数接口变成了需要接收字符串的了,就需要在括号中加入参数,参数要互相呼应,因为Lambd只适用于一个接口,所以是实现,而test是用来确定接口的。
第二种参数写法
test((a)->...)为啥参数类型都没有?这个我认为接口确定,实现确定,方法确定下,参数不加方法名是可以识别的。
还有一种怪异的写法:
Cs h=Integer::parseInt;这种针对方法的。这个我没有理解到。。。忒。。
代码覆盖率测试,在eclipse中除了run as运行,与debug调试,还有个coverage as代码覆盖率测试,当你点击这个运行的时候,会出2-3中颜色。
黄色:代表分支语句,不是if else,这种已知的条件分支,而是像随机数这种无法确定的,这种分支,就会被标为黄色语句
红色:代表这句代码没有被执行到
绿色:绿色代表执行到了这句代码
eclipse的源码包与源码包虽然不在同一个地方,但他们却在同一个工程中方法,比如有src与test包,
当你运行代码覆盖率测试,src与test都会被执行,如果,src中的包引用到了test下的包,test下被引用的包也会显示绿色被执行,如果没有引用到test只是运行src,那么test包都会是红色,都是没有被执行。
因为你们是同一个工程。会一起运行,源码包,不过是将代码分开放,运行的时候你们源码包都是一起运行。如果是不同工程,那不行,你其他工程引不到,更别提一起运行了。
- Java8,静态默认方法,Lambd继承接口写法,与代码覆盖率测试
- Java8特性之接口的默认方法与静态方法
- Java8接口变化-静态方法&默认方法
- JAVA8接口默认方法和静态方法
- java8接口默认方法和静态方法
- java8之接口的默认静态方法
- Java8新特性 接口默认方法,接口静态方法
- Java8新特性Optional、接口中的默认方法与静态方法
- java8接口默认方法
- Java8 接口默认方法
- java8新特性接口的默认方法和静态方法
- java8新特性接口的默认方法和静态方法
- Java8---2.函数接口的默认方法和静态方法
- 二、Java8的默认方法和静态接口方法
- Java8之默认方法和静态接口方法
- Java8接口中默认方法和静态方法
- java8 接口的默认方法和静态方法
- java8新特性之接口默认方法&静态方法
- 系统启动流程(五)
- Java并发编程艺术 6 Fork/Join框架
- JVM相关面试题及答案
- 1th Roman_to_Integer
- codevs 1021 玛丽卡
- Java8,静态默认方法,Lambd继承接口写法,与代码覆盖率测试
- r2uqqxkm
- 学习SpringMVC——整合Hibernate、Spring、SpringMVC
- 五种方式让你在java中读取properties文件内容不再是难题
- 洛谷P1312 Mayan游戏
- Minimum Depth of Binary Tree
- hadoop错误:Cannot create directory /opt/data/tmp/dfs/name/current
- windows下安装Scrapy步骤(支持Python3.X)
- Java并发编程艺术 7 Java的13个原子操作类