紧随时代的步伐--Java8之Lambda表达式的使用

1、前言

在计算机行业,每天都会有新的技术诞生,每天都会有上百种的技术更新升级。追随时代的步伐,终生学习,才能不被社会的浪潮淘汰。

 

2、关于Lambda表达式

Lambda表达式是Java8新特性之一,它使得Java编程变得更加抽象,更加理性。同时也意味着代码的可读性下降。在日常的开发中,不建议使用Lambda表达式编程。

 

3、抽象接口

 

@FunctionalInterface
public interface MyNumber<T> {

	//double getValue();
	
	//boolean test(int n);
	
	//int fun(int n);
	
	T funstr(T t);
}

在接口处加入注解,表明该接口为函数式接口,当中定义为泛型T,方法返回泛型T。参数可以也是泛型T,也可以是与返回值不同数据类型的泛型F

4、实现类

 

public class Test6 {

	public static void main(String[] args) {
		
		MyNumber<String> myNumber=(str)->{
			String result="";
			for(int i=str.length()-1;i>=0;i--){
				result+=str.charAt(i);
			}
			return result;
		};
		
		System.out.println(myNumber.funstr("ABC"));
		
		MyNumber<Integer> myNumber2=(n)->{
			int i=0;
			do{
				i+=1;
				n+=i;
			}while(i<10);
			return n;
		};
		System.out.println(myNumber2.funstr(10));
	}

	
}

在新建的MyNumber接口中可以是String类型,也可以是Integer类型。右边括号str、n为入参。通过->符号和一个大括号,编写接口的实现代码。

从上述可以看出,业务逻辑代码与接口的实现代码夹杂在一起,不利于模块化,也是不建议实际开发中使用的原因之一。

 

Reference:

[1] Herbert Schildt, 战晓苏 江凌(译), Java 8 编程参考官方教程(第9版), 清华大学出版社, 385-416

 

posted @ 2017-08-05 11:28  ryelqy  阅读(176)  评论(0编辑  收藏  举报