1. 程式人生 > >Lambda表示式語法2

Lambda表示式語法2

package airycode_java8.nice3;

import airycode_java8.nice1.Employee;
import org.junit.Test;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * Created by admin on 2019/1/2.
 */
public class TestLambda {

    //準備資料
    List<Employee> employeeList = Arrays.asList(
            new Employee("張三",18,9999.99, Employee.Status.FREE),
            new Employee("李四",38,5555.55,Employee.Status.BUSY),
            new Employee("王五",50,6666.66,Employee.Status.VOCATION),
            new Employee("趙六",16,3333.33,Employee.Status.FREE),
            new Employee("田七",8,7777.77,Employee.Status.BUSY)
    );

    //
    @Test
    public void test1(){
        Collections.sort(employeeList,(e1,e2)->{
            if (e1.getAge() == e2.getAge()) {
                return e1.getName().compareTo(e2.getName());
            } else {
                return Integer.compare(e1.getAge(),e2.getAge());
            }
        });

        for (Employee employee: employeeList) {
            System.out.println(employee);
        }

    }

    @Test
    public void test2(){
        String result = strHandle("aa", (str) -> str.toUpperCase());
        System.out.println(result);
    }

    public String strHandle(String string,MyFunction mf){
        return mf.getValue(string);
    }

    @Test
    public void test3(){
        op(100L,200L,(x,y) -> x+y);
    }

    public void op(Long l1,Long l2,MyFunction2<Long,Long> mf){
        System.out.println(mf.getValue(l1,l2));
    }

}



package airycode_java8.nice3;

/**
 * Created by admin on 2019/1/2.
 */
@FunctionalInterface
public interface MyFunction {

    public String getValue(String s);

}


package airycode_java8.nice3;

/**
 * Created by admin on 2019/1/2.
 */
@FunctionalInterface
public interface MyFunction2<T,R> {

    public R getValue(T t1,T t2);

}