public static void main(String[] args) {
Comparator<String> comparator = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return Integer.compare(o1.length(), o2.length());
}
};
Comparator<String> comparator1 = (String a, String b) -> {
return Integer.compare(a.length(), b.length());
};
Comparator<String> comparator2 = Comparator.comparing(String::length);
}
类文件: LambdaAndAnonymousInner $ 1.class和 LambdaAndAnonymousInner.class
LambdaAndAnonymousInner $ 1.class为comparator
comparator1
和comparator2
不会写.class
个文件
我想知道为什么会发生
答案 0 :(得分:5)
这是因为lambdas是动态调用的。
请参阅:http://wiki.jvmlangsummit.com/images/1/1e/2011_Goetz_Lambda.pdf