java引入了函数式编程,这表示Java从此不在是一个单纯的面向对象语言,现在它又同时混合了函数式编程。那java函数式编程的好处是什么?下面来我们就来给大家讲解一下。
从代码的可维护性上讲,函数式编程最大的好处是引用透明,即函数运行的结果只依赖于输入的参数,而不依赖于外部状态,因此,我们常常说函数式编程没有副作用。
没有副作用有个巨大的好处,就是函数内部无状态,即输入确定,输出就是确定的,容易测试和维护。
以下是java函数式编程示例:
1.不使用内置接口,消费型接口示例
我们自己定义了一个消费型的接口。
// 如果不使用内置函数接口,消费型接口例子
interface SpendMoney
{
void buy(double money);
}
class Test04
{
public static void buySomething(double money, SpendMoney sm)
{
sm.buy(money);
}
public static void main(String[] args)
{
buySomething(1999, new SpendMoney()
{
@Override
public void buy(double money)
{
System.out.println("我买了件大衣!!!花了" + money + "元钱");
}
});
}
}2.使用内置函数式接口Consumer示例
已经存在了内置函数式接口,我们就没必要再定义自己的接口,显得多余。
class Test05
{
public static void buySomething(double money, Consumersm)
{
sm.accept(money);
}
public static void main(String[] args)
{
buySomething(999, new Consumer()
{
@Override
public void accept(Double o)
{
System.out.println("我买了件大衣!!!花了" + o + "元钱");
}
});
// 用lambda表达优化
buySomething(999, o - > System.out.println("我买了件大衣!!!花了" + o + "元钱"));
}
}3.使用断言型接口示例
Predicate 接口是一个函数式接口,它接受一个输入参数 T,返回一个布尔值结果。
该接口包含多种默认方法来将Predicate组合成其他复杂的逻辑(比如:与,或,非)。
该接口用于测试对象是 true 或 false。
我们可以通过以下实例(Java8Tester.java)来了解函数式接口 Predicate 的使用:
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
public class Java8Tester
{
public static void main(String args[])
{
Listlist = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
// Predicatepredicate = n -> true
// n 是一个参数传递到 Predicate 接口的 test 方法
// n 如果存在则 test 方法返回 true
System.out.println("输出所有数据:");
// 传递参数 n
eval(list, n - > true);
// Predicatepredicate1 = n -> n%2 == 0
// n 是一个参数传递到 Predicate 接口的 test 方法
// 如果 n%2 为 0 test 方法返回 true
System.out.println("输出所有偶数:");
eval(list, n - > n % 2 == 0);
// Predicatepredicate2 = n -> n > 3
// n 是一个参数传递到 Predicate 接口的 test 方法
// 如果 n 大于 3 test 方法返回 true
System.out.println("输出大于 3 的所有数字:");
eval(list, n - > n > 3);
}
public static void eval(Listlist, Predicatepredicate)
{
for (Integer n: list)
{
if (predicate.test(n))
{
System.out.println(n + " ");
}
}
}
}输出结果:
输出所有数据: 1 2 3 4 5 6 7 8 9 输出所有偶数: 2 4 6 8 输出大于 3 的所有数字: 4 5 6 7 8 9
函数式编程是种编程方式,有了它能够减少了可变量的声明,更好的利用并行,并且使代码更加简洁和可读哦!最后大家如果想要了解更多初识java知识,敬请关注赋能网。
本文链接:
本文章“java函数式编程的好处是什么?java函数式编程示例”已帮助 78 人
免责声明:本信息由用户发布,本站不承担本信息引起的任何交易及知识产权侵权的法律责任!
本文由赋能网 整理发布。了解更多培训机构》培训课程》学习资讯》课程优惠》课程开班》学校地址等机构信息,可以留下您的联系方式,让课程老师跟你详细解答:
咨询热线:4008-569-579


