public class TestMethodRef {
//数组引用
@Test
public void test(){
Person[] rosterAsArray = new Person[]
{
new Person(100,"zangliang"),
new Person(1,"anan"),
new Person(120,"ananma")
};
// //使用最原始的方法
// Arrays.sort(rosterAsArray, new PersonAgeComparator());
// //使用lamda
// Arrays.sort(rosterAsArray,
// (Person a, Person b) -> {
// return a.age.compareTo(b.age);
// }
// );
// //这种用于比较两个Person实例的出生日期的方法已经存在Person.compareByAge
// Arrays.sort(rosterAsArray,
// (a, b) -> Person.compareByAge(a, b)
// );
// //可以使用方法引用代替lambda表达式
Arrays.sort(rosterAsArray, Person::compareByAge);
for (Person person : rosterAsArray) {
System.out.println(person.name);
}
}
}
class PersonAgeComparator implements Comparator<Person> {
@Override
public int compare(Person a, Person b) {
return a.age.compareTo(b.age);
}
}
class Person {
public enum Sex {
MALE, FEMALE
}
public Person(Integer age,String name)
{
this.age=age;
this.name=name;
}
String name;
Calendar birthday;
Sex gender;
String emailAddress;
Integer age;
public int getAge() {
return age;
}
public Calendar getBirthday() {
return birthday;
}
public static int compareByAge(Person a, Person b) {
return a.age.compareTo(b.age);
}}
版权声明:本文为yz18931904原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。