/** * 静态方法引用 * * * 如果函数式接口的实现恰好可以通过调用一个静态方法完成 就可以使用静态方法引用 * (只是调用 不做其他处理) * ClassName: Exmaple1 <br/> * Function: TODO ADD FUNCTION. <br/> * date: 2017年9月8日 下午10:39:06 <br/> * @author: Lelonta * @version: * * * 类名::staticmethod */
public class StaticRef {
//无参数的静态方法
public static String get() {
return "hello";
}
//有参数的静态方法
public static String put(String str) {
return str+"hello";
}
public static void main(String[] args) {
//普通lambda表达式 返回hello 静态方法get返回hello
Supplier<String> s1 = () -> "hello";
//改进
Supplier<String> s2 = () -> StaticRef.get();
//静态方法的引用
//我的方法要返回一个字符串 有一个静态方法刚好返回这个字符串
//此时 可以使用静态方法的引用
//只是引用 不做增删改的操作
Supplier<String> s3 = StaticRef::get;
System.out.println(s3.get());
//带有参数和返回值的表达式转换
Function<String, String> fn = (str) -> "hello";
Function<String, String> fn1 = StaticRef::put;
System.out.println(fn1.apply("world"));
BiFunction<String, String, Integer> bf = (String ss1,String ss2) -> ss1.length()+ss2.length();
System.out.println("bf"+"========="+bf.apply("abcdf", "nsnanda"));
BiFunction<String, String, Integer> bf1 =Bifuntion::get;
System.out.println("bf1"+"========="+bf1.apply("abcdf", "nsnanda"));
}
}
class Bifuntion {
public static int get(String string1,String string2) {
return string1.length() + string2.length();
}
}
java8-静态方法引用
原文作者:Lelontar
原文地址: https://blog.csdn.net/u011277745/article/details/78182165
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/u011277745/article/details/78182165
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。