Skip to content

Commit 98232ba

Browse files
committed
change class name. code clear up
1 parent d522c79 commit 98232ba

File tree

2 files changed

+44
-47
lines changed

2 files changed

+44
-47
lines changed

src/main/java/com/winterbe/java8/samples/lambda/Lambda2.java

Lines changed: 0 additions & 47 deletions
This file was deleted.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.winterbe.java8.samples.lambda;
2+
3+
/**
4+
* @author Benjamin Winterberg
5+
*/
6+
public class LambdaToInterface {
7+
8+
@FunctionalInterface
9+
public static interface Converter<F, T> {
10+
T convert(F from);
11+
}
12+
13+
static class Something {
14+
String startsWith(String s) {
15+
return String.valueOf(s.charAt(0));
16+
}
17+
}
18+
19+
interface PersonFactory<P extends Person> {
20+
P create(String firstName, String lastName);
21+
}
22+
23+
public static void main(String[] args) {
24+
Converter<String, Integer> integerConverter1 = (from) -> Integer.valueOf(from);
25+
Integer converted1 = integerConverter1.convert("123");
26+
System.out.println(converted1); // result: 123
27+
28+
// method reference
29+
Converter<String, Integer> integerConverter2 = Integer::valueOf;
30+
Integer converted2 = integerConverter2.convert("123");
31+
System.out.println(converted2); // result: 123
32+
33+
Something something = new Something();
34+
35+
Converter<String, String> stringConverter = something::startsWith;
36+
String converted3 = stringConverter.convert("Java");
37+
System.out.println(converted3); // result J
38+
39+
// constructor reference
40+
PersonFactory<Person> personFactory = Person::new;
41+
Person person = personFactory.create("Peter", "Parker");
42+
System.out.println(person); // return Person [firstName=Peter,lastName=Parker]
43+
}
44+
}

0 commit comments

Comments
 (0)