Lambda Expressions (Method Reference)

来源:互联网 发布:中间件监控数据采集 编辑:程序博客网 时间:2024/05/22 11:47

Lambda Expressions

1.Reference to a static method

    @Test(dataProvider = "persons")    public void testSortPersons2(Person[] persons) {        Arrays.sort(persons, PersonUtil::compareByAge);        assertSortedPersons(persons);    }

2.Reference to an instance method of a particular object

    @Test(dataProvider = "persons")    public void testSortPersons3(Person[] persons) {        Arrays.sort(persons, sean::compareByAge);        assertSortedPersons(persons);    }

3.Reference to an instance method of an arbitrary object of a particular type

    public void testSortNames() {        String[] names = { sean.getName(), wanyu.getName(), shaohan.getName(), mohan.getName() };        Arrays.sort(names, String::compareToIgnoreCase);        assertEquals(mohan.getName(), names[0]);        assertEquals(sean.getName(), names[1]);        assertEquals(shaohan.getName(), names[2]);        assertEquals(wanyu.getName(), names[3]);    }

4.Reference to a constructor

    @Test(dataProvider = "persons")    public void testTransferElements(Person[] persons) {        Set<Person> newPersons = PersonUtil.transferElements(Arrays.asList(persons), HashSet<Person>::new);        assertTrue(newPersons.size() == 4);        assertTrue(newPersons.contains(shaohan));        assertTrue(newPersons.contains(mohan));        assertTrue(newPersons.contains(sean));        assertTrue(newPersons.contains(wanyu));    }
原创粉丝点击