官术网_书友最值得收藏!

Method reference

To improve code readability of Lambda expressions for functions having a name method reference is used. Method references have been identified in four different categories:

  • Static method reference: For a static method isOdd, the method can be directly referenced as MethodReferenceExample::isOdd:
public static boolean isOdd(Integer n) { return n % 2 != 0; };
public static void main(String[] args) {
IntStream.range(1, 8).filter(MethodReferenceExample::isOdd).forEach(x->System.out.println(x));
}
  • Instance method reference: For referencing an instance method, the instance of the method can be called separated by a double colon (::). Here System.out is an instance of PrintStream whose method println is being called:
//Instance Method Reference
IntStream.range(1, 8).filter(x-> x%2==0).forEach(System.out::println);
  • Constructor reference: A constructor method reference can be called by adding the suffix new after :::
//Constructor Reference
TreeSet<String> hset= streamSupplier.get().collect(Collectors.toCollection(TreeSet::new));
  1. Instance method reference of an arbitrary object of a particular type: The following example is an instance method reference of an arbitrary object of a particular type:
System.out.println(" The sum of lengths are ::" + streamSupplier.get().map(x->x.length()).reduce(Integer::sum));
主站蜘蛛池模板: 和静县| 南和县| 大名县| 若羌县| 苏尼特左旗| 石柱| 兴和县| 全椒县| 阳朔县| 阳朔县| 绿春县| 汉中市| 谢通门县| 西峡县| 鹤山市| 凭祥市| 定南县| 宁海县| 阳泉市| 疏勒县| 叙永县| 项城市| 廊坊市| 唐山市| 新龙县| 安远县| 石景山区| 威宁| 蓬溪县| 开远市| 仙桃市| 临安市| 田东县| 固镇县| 黎平县| 鹰潭市| 大新县| 兴安盟| 高唐县| 合川市| 成安县|