zoukankan      html  css  js  c++  java
  • Lambda表达式

    1.常见单方法接口

    • Comparator
    • Runnable
    • Callable
    普通:
    String [] names={"mushroom","peach","appl","banana"}; Comparator comparator=new Comparator<String>() { @Override public int compare(String o1, String o2) { return o1.length()-o2.length(); //[appl, peach, banana, mushroom] } };
    Lambda方式:
        
          Comparator<String> comparator=(String name1,String name2)->name1.length()-name2.length(); //[appl, peach, banana, mushroom]

    Comparator<String> comparator=(name1 , name2)->name1.length()-name2.length(); //[appl, peach, banana, mushroom]
     

    2. @FunctionalInterface

    只定义了单方法的接口称之为FunctionalInterface,用注解@FunctionalInterface标记,如Callable接口

     * @see Executor
     * @since 1.5
     * @author Doug Lea
     * @param <V> the result type of method {@code call}
     */
    @FunctionalInterface
    public interface Callable<V> {
        /**
         * Computes a result, or throws an exception if unable to do so.
         *
         * @return computed result
         * @throws Exception if unable to compute a result
         */
        V call() throws Exception;
    }

    但 Comparator接口:

    @FunctionalInterface
    public interface Comparator<T> {
    
        int compare(T o1, T o2);
    
        boolean equals(Object obj);
    
        default Comparator<T> reversed() {
            return Collections.reverseOrder(this);
        }
    
        default Comparator<T> thenComparing(Comparator<? super T> other) {
            ...
        }
        
    }

    虽然Comparator接口有很多方法,但只有一个抽象方法int compare(T o1, T o2),其他的方法都是default方法或static方法。另外注意到boolean equals(Object obj)Object定义的方法,不算在接口方法内。因此,Comparator也是一个FunctionalInterface

    作者:crazyLL
    纯粹自己记录着玩的,来源于自己的想法或者互联网文章,侵删
  • 相关阅读:
    Swift
    遇到奇怪的问题,帮助威猛答案,表单提交的文件提交的无限数据问题
    对于思考小端和大端字节顺序
    圈真的决定你的未来?
    坦克大战
    android visible invisible和gone差异
    编程之美2: 二进制重建
    WCF分布式事务(EF)
    Android+NDK+OpenGLES开发环境配置
    struts2和struts1认识
  • 原文地址:https://www.cnblogs.com/crazy-lc/p/14969664.html
Copyright © 2011-2022 走看看