Skip to content

Commit 8a94f83

Browse files
committed
Revert "Ejemplo no usado, removido"
This reverts commit aa5dcc4.
1 parent 75183f0 commit 8a94f83

1 file changed

Lines changed: 102 additions & 0 deletions

File tree

  • modules/src/main/java/com/platzi/functional/_07_inference
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
package com.platzi.functional._07_inference;
2+
3+
import java.util.Arrays;
4+
import java.util.LinkedList;
5+
import java.util.List;
6+
import java.util.stream.Stream;
7+
8+
public class Inference {
9+
private static void typeInference() {
10+
List<Integer> numbersList = getNumbers();
11+
12+
/*
13+
La parte interesante de la inferencia de tipos es que
14+
Java puede identificar de una funcion que tipo de parametro y retorno tiene y
15+
con ello darnos acceso a ese tipo en la siguiente funcion.
16+
*/
17+
getOperable(numbersList)
18+
.filter(n -> n % 10 == 0)
19+
.map(n -> {
20+
char[] repeater = new char[n];
21+
Arrays.fill(repeater, '!');
22+
return repeater;
23+
})
24+
.map(String::new)
25+
.forEach(System.out::println);
26+
27+
28+
29+
30+
31+
32+
33+
34+
35+
36+
37+
38+
/*
39+
Sin la inferencia el codigo de arriba se veria muchisimo mas largo y menos declarativo
40+
41+
Aunque estos factores no son malos, en muchas ocasiones restan legibilidad en el codigo.
42+
*/
43+
getOperable(numbersList)
44+
.filter((Integer n) -> n % 10 == 0)
45+
.map((Integer n) -> {
46+
char[] repeater = new char[n];
47+
Arrays.fill(repeater, '!');
48+
return repeater;
49+
})
50+
.map((char[] chars) -> new String(chars))
51+
.forEach((String str) -> System.out.println(str));
52+
}
53+
54+
55+
56+
57+
58+
59+
60+
61+
62+
63+
64+
65+
66+
private static List<Integer> getNumbers(){
67+
List<Integer> numbers = new LinkedList<>();
68+
numbers.add(1);
69+
numbers.add(10);
70+
numbers.add(11);
71+
numbers.add(100);
72+
numbers.add(1001);
73+
numbers.add(1010);
74+
numbers.add(1100);
75+
numbers.add(1111);
76+
77+
return numbers;
78+
}
79+
80+
81+
82+
83+
84+
85+
86+
87+
88+
89+
90+
91+
92+
93+
94+
95+
96+
97+
98+
99+
private static Stream<Integer> getOperable(List<Integer> list) {
100+
return list.stream();
101+
}
102+
}

0 commit comments

Comments
 (0)