lambda表达式实际上是在引擎下实现java接口吗?

时间:2015-06-29 06:35:15

标签: lambda java-8 functional-interface

下面是使用lambda表达式作为sort()方法的参数的java程序。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Dummy {

    public static void main(String[] args) {
        List<String> a1 = new ArrayList<String>();
        a1.add("Zara");
        a1.add("Mahnaz");
        a1.add("Ayan");
        Collections.sort(a1,
                            (p1, p2) -> p1.compareTo(p2)

                        );

        System.out.println(a1.toString());
    } //end main

}

使用Eclipse,当我在F3方法上说sort()时,控件再次实际上与java 7版本中使用的sort()方法签名(definiton)相同。

@SuppressWarnings({"unchecked", "rawtypes"})
    public static <T> void sort(List<T> list, Comparator<? super T> c) {
        //whatever
    }

在我的代码中,sort()方法中第二个参数的语法是否实际上等同于实现interface Comparator<T>

之类的东西
class ComparePersonsbyName implements Comparator<String>{
    public int compareTo(String p1, String p2){
        return p1.compareTo(p2);        
    }
}
Collections.sort(a1, new ComparePersonsbyName());

1 个答案:

答案 0 :(得分:4)