考试网 >> IT认证 >> JAVA >> JAVA指导 >> 关于Java 语言中的函数编程

关于Java 语言中的函数编程

发布时间:2006-06-28 11:10     点击:
分页:上一页  1 2 3 4 5 6 7 8 [9] 10  下一页  后10页

  CompositeUnaryFunction calcNetPrice =

  new CompositeUnaryFunction(calcTax, calcDiscountedPrice);

  Double netPrice = (Double)calcNetPrice.evaluate(new Double(item.getPrice()));

  System.out.println("The net price is: " + netPrice);

  }

  catch (Exception e)

  {

  e.printStackTrace();

  }

  }

  }

  

  BinaryFunction 类似于前面看到的 BinaryPredicate ,是一个由 Apache Functor 提供的一般化仿函数(functor)接口。 BinaryFunction 接口有两个参数并返回一个 Object 值。类似地, UnaryFunction 是一个取一个 Object 参数并返回一个 Object 值的仿函数接口。

  

  RightBoundFunction 是一个由 Apache 库提供的适配器类,它通过使用常量右参数(right-side argument)将 BinaryFunction 适配给 UnaryFunction 接口。即,在一个参数中收到相应的消息( evaluate ) 时,它在内部用两个参数发送一个 evaluate 消息给正在适配的 BinaryFunction ── 左边的是发送给它的参数,右边的是它知道的常量。您一定会猜到,名字 RightBoundFunction 来自于常量值是作为第二个 (右边) 参数传递这一事实。(是的,Apache 库还提供了一个 LeftBoundFunction ,其中常量是作为第一个参数或者左参数传递的。)

  

  用于双精度相乘的特化的 BinaryFunction

  

  清单 3 显示了名为 Multiply 的特化的 BinaryFunction ,它取两个 Double 作为输入并返回一个新的、由前两个双精度值相乘而得到 Double 。

  

  在 calcDiscountedRate 中实例化了一个新的 RightBoundFunction ,它通过用 (1 - discountRate) 作为其常量第二参数,将二元 Multiply 函数适配为一元接口。
分页:上一页  1 2 3 4 5 6 7 8 [9] 10  下一页  后10页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有