zoukankan      html  css  js  c++  java
  • Java方法引用的5种类型

    package otaku.lambda;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.function.Function;
    
    public class MethodReference {
    	
    	public static void main(String[] args) {
    		//lambda
    		strToIntFunc("1", str -> Integer.parseInt(str));
    		//静态方法引用,静态方法和函数接口Function参数和返回值要一致
    		strToIntFunc("1", Integer::parseInt);
    		
    		//lambda
    		dateFormat(new Date(), str -> new SimpleDateFormat("yyyyMMdd").format(str));
    		//实例方法引用,这种用法和静态方法引用类似,区别只是方法是实例还是静态
    		dateFormat(new Date(), new SimpleDateFormat("yyyyMMdd")::format);
    		
    		//lambda
    		changeStrFormat("ABC", str -> str.toLowerCase());
    		//无限制的实例方法引用,注意这里,toLowerCase是实例方法,但具体的对象是作为参数传进来的
    		changeStrFormat("ABC", String::toLowerCase);
    		
    		//lambda
    		newIntArray(4, len -> new int[4]);
    		//构造器方法引用,根据传入的参数,构造数组返回
    		newIntArray(4, int[]::new);
    		
    		//lambda
    		strToIntFunc("1", str -> new Integer(str));
    		//构造器方法引用
    		strToIntFunc("1", Integer::new);
    	}
    	
    	public static int[] newIntArray(int len, Function<Integer, int[]> func) {
    		return func.apply(len);
    	}
    	
    	public static String changeStrFormat(String str, Function<String, String> func) {
    		return func.apply(str);
    	}
    	
    	public static String dateFormat(Date date, Function<Date, String> func) {
    		return func.apply(date);
    	}
    	
    	public static Integer strToIntFunc(String str, Function<String, Integer> func) {
    		return func.apply(str);
    	}
    	
    }
  • 相关阅读:
    野餐规划
    jQuery火箭图标返回顶部代码
    js清除数组中的null元素
    typescript 配置 alias
    艰难的2020春招----来自普通本科学校艰辛历程(二)
    艰难的2020春招----来自普通本科学校的艰辛历程(一)
    博客园与csdn同步写作
    回溯法——数独游戏
    动态规划——合唱队
    动态规划——分组背包问题
  • 原文地址:https://www.cnblogs.com/zjm-1/p/14085728.html
Copyright © 2011-2022 走看看