1 00:00:01,389 --> 00:00:20,530 Vale, pues cuando vamos a usar objetos que no vamos a modificar, puedo hacer yo estas clases en lugar de public class y todo, todo el Getty Set que tampoco pasa nada, se lo genera el entorno de desarrollo automáticamente, pero bueno, lo podéis ver, lo podéis ver por ahí, pues lo podéis usar. 2 00:00:20,530 --> 00:00:22,370 Pues cambio el class por record 3 00:00:22,370 --> 00:00:24,089 Y ya está 4 00:00:24,089 --> 00:00:25,370 De hecho es que aquí 5 00:00:25,370 --> 00:00:28,309 Una de las cosas que te ofrece es esta 6 00:00:28,309 --> 00:00:29,489 ¿Vale? 7 00:00:31,070 --> 00:00:33,270 Entonces, cuando lo cambias por record 8 00:00:33,270 --> 00:00:35,630 Pones entre paréntesis 9 00:00:35,630 --> 00:00:36,850 Este es el uso básico 10 00:00:36,850 --> 00:00:38,289 Las propiedades 11 00:00:38,289 --> 00:00:40,810 Que implícitamente van a ser privadas 12 00:00:40,810 --> 00:00:42,549 No hay que ponerle privada 13 00:00:42,549 --> 00:00:43,909 Implícitamente son privadas 14 00:00:43,909 --> 00:00:46,250 Porque en los bins 15 00:00:46,250 --> 00:00:48,810 O los pojos 16 00:00:48,810 --> 00:00:49,710 Como lo queráis llamar 17 00:00:49,710 --> 00:00:51,049 porque es lo mismo, es la misma idea, 18 00:00:51,810 --> 00:00:53,850 los objetos simples de datos, 19 00:00:55,469 --> 00:00:56,969 las propiedades deben ser privadas, 20 00:00:57,350 --> 00:00:59,789 para tú ofrecer solamente acceso de lectura, 21 00:00:59,890 --> 00:01:01,049 escritura, el que tú elijas, 22 00:01:01,149 --> 00:01:02,090 no todos a mogollón, 23 00:01:02,530 --> 00:01:03,789 pues simplemente son privadas, 24 00:01:04,209 --> 00:01:05,590 y luego pones aquí unas llavecitas, 25 00:01:06,109 --> 00:01:08,709 donde podrías poner cosas, si quisieras, 26 00:01:09,049 --> 00:01:09,890 podrías poner cosas, 27 00:01:11,049 --> 00:01:11,250 ¿vale? 28 00:01:11,250 --> 00:01:12,569 Pero si tú no pones nada, 29 00:01:13,549 --> 00:01:16,409 automáticamente es como si se generara el set, 30 00:01:17,510 --> 00:01:19,069 el, perdón, el get, 31 00:01:19,069 --> 00:01:22,510 El set no, porque estos objetos no se modifican 32 00:01:22,510 --> 00:01:25,049 Automáticamente es como si se generaran ya los set 33 00:01:25,049 --> 00:01:27,010 Pero ¿se usa como set? 34 00:01:27,090 --> 00:01:31,670 No, es un método que se usa simplemente con el nombre de la propiedad 35 00:01:31,670 --> 00:01:38,090 Por ejemplo, yo no sé si lo estoy usando aquí en algún sitio 36 00:01:38,090 --> 00:01:42,969 Si yo quisiera desde cualquier otro lado 37 00:01:42,969 --> 00:01:45,489 Desde aquí 38 00:01:45,489 --> 00:01:50,760 Ah, por ejemplo, aquí lo estoy usando 39 00:01:50,760 --> 00:02:02,340 vale, aquí por ejemplo 40 00:02:02,340 --> 00:02:03,760 este for 41 00:02:03,760 --> 00:02:06,400 es cada corredor dentro 42 00:02:06,400 --> 00:02:07,519 de los corredores 43 00:02:07,519 --> 00:02:09,680 esto en condiciones normales 44 00:02:09,680 --> 00:02:11,680 lo hacíamos con el get, verdad 45 00:02:11,680 --> 00:02:13,659 que lo invocábamos así 46 00:02:13,659 --> 00:02:16,219 pues si mi clase fórmula 1 47 00:02:16,219 --> 00:02:16,900 es un record 48 00:02:16,900 --> 00:02:20,139 el método para 49 00:02:20,139 --> 00:02:22,379 consultar la propiedad no se llama get 50 00:02:22,379 --> 00:02:24,400 se llama como la 51 00:02:24,400 --> 00:02:25,500 propiedad tal cual 52 00:02:25,500 --> 00:02:28,639 y el set no existe 53 00:02:28,639 --> 00:02:30,340 acordaos porque no se puede 54 00:02:30,340 --> 00:02:31,159 escribir, entonces 55 00:02:31,159 --> 00:02:36,460 no, no, porque es un método 56 00:02:36,460 --> 00:02:38,120 en realidad, porque le pones los paréntesis 57 00:02:38,120 --> 00:02:40,259 claro, así 58 00:02:40,259 --> 00:02:42,479 así no puedo 59 00:02:42,479 --> 00:02:44,259 porque sería la propiedad que es 60 00:02:44,259 --> 00:02:46,280 privada implícitamente, aunque yo lo haya puesto 61 00:02:46,280 --> 00:02:48,180 aquí, aunque yo no lo haya puesto 62 00:02:48,180 --> 00:02:49,219 implícitamente es privada 63 00:02:49,219 --> 00:02:51,659 vale, entonces tengo que acceder 64 00:02:51,659 --> 00:02:53,680 con el método este 65 00:02:53,680 --> 00:02:56,199 que es el método que consulta 66 00:02:56,199 --> 00:02:57,860 solo para consultas, vale 67 00:02:57,860 --> 00:02:59,659 bueno 68 00:02:59,659 --> 00:03:01,580 pues es una manera 69 00:03:01,580 --> 00:03:04,080 no sé si relativamente habitual 70 00:03:04,080 --> 00:03:05,659 pero sí hombre, se ve por ahí 71 00:03:05,659 --> 00:03:07,599 claro 72 00:03:07,599 --> 00:03:09,939 para hacer modelos de los cuales 73 00:03:09,939 --> 00:03:11,599 los objetos que instanciamos 74 00:03:11,599 --> 00:03:13,780 una vez instanciados no se van a tocar nunca 75 00:03:13,780 --> 00:03:14,759 que son 76 00:03:14,759 --> 00:03:17,280 un conjunto de situaciones 77 00:03:17,280 --> 00:03:19,139 más amplia de lo que nos podemos imaginar 78 00:03:19,139 --> 00:03:21,599 precisamente cuando volcamos datos 79 00:03:21,599 --> 00:03:22,719 una base de datos para 80 00:03:22,719 --> 00:03:25,639 mandarlos a una vista, esa es justo 81 00:03:25,639 --> 00:03:27,460 la situación, cuando volcamos 82 00:03:27,460 --> 00:03:29,379 datos de ficheros, de bases de datos para 83 00:03:29,379 --> 00:03:31,340 Que un controlador los pase una vista 84 00:03:31,340 --> 00:03:33,419 Pues es la situación en la cual ahí no vamos a tocar 85 00:03:33,419 --> 00:03:35,800 Los hemos recogido para mostrarlos 86 00:03:35,800 --> 00:03:37,879 Pues nos hacemos todo en récord 87 00:03:37,879 --> 00:03:39,360 Y es mucho más rápido 88 00:03:39,360 --> 00:03:41,439 ¿Vale? 89 00:03:44,099 --> 00:03:44,460 Y 90 00:03:44,460 --> 00:03:47,139 El Lombok 91 00:03:47,139 --> 00:03:49,620 Os lo digo por encima pero no es algo 92 00:03:49,620 --> 00:03:51,479 Que me vaya a importar 93 00:03:51,479 --> 00:03:53,919 Importar especialmente 94 00:03:53,919 --> 00:03:55,639 Que uséis o no, pero que conozcáis 95 00:03:55,639 --> 00:03:57,819 La herramienta 96 00:03:57,819 --> 00:03:58,960 Lombok es una librería 97 00:03:58,960 --> 00:04:01,759 es una librería que se creó hace un montón 98 00:04:01,759 --> 00:04:03,659 de años, pero se sigue 99 00:04:03,659 --> 00:04:05,919 manteniendo, la última versión es del septiembre 100 00:04:05,919 --> 00:04:07,000 se sigue manteniendo 101 00:04:07,000 --> 00:04:09,240 ¿qué es lo que hace? es 102 00:04:09,240 --> 00:04:11,319 te evita el poner 103 00:04:11,319 --> 00:04:13,500 get, set, constructores, lo que tú quieras 104 00:04:13,500 --> 00:04:15,319 o la puedes configurar, te lo evita 105 00:04:15,319 --> 00:04:17,579 tú pones las propiedades y una 106 00:04:17,579 --> 00:04:19,399 anotación, y entonces 107 00:04:19,399 --> 00:04:21,220 en tiempo de compilación 108 00:04:21,220 --> 00:04:23,079 se genera todo lo demás 109 00:04:23,079 --> 00:04:25,019 y en el punto class 110 00:04:25,019 --> 00:04:27,379 en el compilado ya está dentro metido 111 00:04:27,379 --> 00:04:29,420 en el punto javano lógicamente 112 00:04:29,420 --> 00:04:30,560 porque no lo hemos escrito 113 00:04:30,560 --> 00:04:33,139 pero en el punto class ya está metido todo eso 114 00:04:33,139 --> 00:04:35,519 ¿vale? entonces lo que pasa es que 115 00:04:35,519 --> 00:04:37,600 el longbox no es como el record, así que tienes que 116 00:04:37,600 --> 00:04:39,459 poner una dependencia, etc 117 00:04:39,459 --> 00:04:40,560 entonces 118 00:04:40,560 --> 00:04:43,540 el longbox 119 00:04:43,540 --> 00:04:45,660 para que funcione, pues por ejemplo 120 00:04:45,660 --> 00:04:47,800 aquí, donde lo había usado yo, en corredor 121 00:04:47,800 --> 00:04:51,480 si yo pongo esta anotación 122 00:04:51,480 --> 00:04:53,420 que es una anotación de longbox, para lo cual 123 00:04:53,420 --> 00:04:54,579 tengo que importarla 124 00:04:54,579 --> 00:04:57,199 de longbox, que tendría que poner 125 00:04:57,199 --> 00:04:59,079 la dependencia, ahora miramos cuál 126 00:04:59,079 --> 00:05:01,160 es una única dependencia sencilla 127 00:05:01,160 --> 00:05:03,339 pues si yo he puesto la dependencia 128 00:05:03,339 --> 00:05:04,579 en mi 129 00:05:04,579 --> 00:05:07,199 POM o he importado el 130 00:05:07,199 --> 00:05:09,000 JAR o lo que sea 131 00:05:09,000 --> 00:05:11,199 la dependencia 132 00:05:11,899 --> 00:05:12,740 es 133 00:05:12,740 --> 00:05:16,100 esta 134 00:05:16,100 --> 00:05:17,920 ¿vale? 135 00:05:18,439 --> 00:05:19,980 la dependencia es esta 136 00:05:19,980 --> 00:05:22,779 de hecho si la buscamos 137 00:05:22,779 --> 00:05:24,560 en el repositorio de maven para 138 00:05:24,560 --> 00:05:25,660 verificar 139 00:05:25,660 --> 00:05:40,810 vale, pues si entramos ahí 140 00:05:40,810 --> 00:05:42,990 efectivamente 141 00:05:42,990 --> 00:05:44,889 sigue siendo algo que se está manteniendo 142 00:05:44,889 --> 00:05:47,110 vale, es de septiembre 143 00:05:47,110 --> 00:05:48,730 de este año, no está 144 00:05:48,730 --> 00:05:50,290 abandonado en absoluto 145 00:05:50,290 --> 00:05:52,970 entonces tendría que coger esta dependencia 146 00:05:52,970 --> 00:05:54,970 pasarla a mi POM 147 00:05:54,970 --> 00:05:57,050 o descargarme el HARI e incorporarlo 148 00:05:57,050 --> 00:05:57,689 al ClassPath 149 00:05:57,689 --> 00:06:02,329 una vez que tengo 150 00:06:02,329 --> 00:06:04,209 ya esa dependencia, pues ya está 151 00:06:04,209 --> 00:06:05,589 ya puedo usar las anotaciones 152 00:06:05,589 --> 00:06:08,250 la anotación es la anotación data 153 00:06:08,250 --> 00:06:10,129 que es la básica 154 00:06:10,129 --> 00:06:13,310 y esto me va a generar los get, los set 155 00:06:13,310 --> 00:06:15,649 y un constructor por defecto 156 00:06:15,649 --> 00:06:16,649 aunque yo no lo vea ahí 157 00:06:16,649 --> 00:06:18,930 y no sé si cuál 158 00:06:18,930 --> 00:06:21,449 si tu string, habría que mirarlo 159 00:06:21,449 --> 00:06:22,529 ¿vale? 160 00:06:23,209 --> 00:06:25,269 y ya está, y luego aquí aparte 161 00:06:25,269 --> 00:06:26,550 hay más anotaciones como 162 00:06:26,550 --> 00:06:29,209 generar constructor con parámetros 163 00:06:29,209 --> 00:06:31,449 tiene como otras anotaciones para configurar 164 00:06:31,449 --> 00:06:33,589 si tú quieres constructores específicos 165 00:06:33,589 --> 00:06:35,389 pero bueno, lo básico para ahorrarte 166 00:06:35,389 --> 00:06:36,529 los getter y setter es 167 00:06:36,529 --> 00:06:38,790 Importarlo de la dependencia 168 00:06:38,790 --> 00:06:40,149 Hacer el data y ya está 169 00:06:40,149 --> 00:06:42,269 Solo hay un matiz 170 00:06:42,269 --> 00:06:44,430 En el entorno de desarrollo que se use 171 00:06:44,430 --> 00:06:46,069 Que hay entornos de desarrollo 172 00:06:46,069 --> 00:06:48,589 Que lo entienden 173 00:06:48,589 --> 00:06:50,009 Automáticamente o no 174 00:06:50,009 --> 00:06:51,990 La compilación con anotaciones 175 00:06:51,990 --> 00:06:53,870 O sea el compilador 176 00:06:53,870 --> 00:06:56,430 Puede tener en cuenta las anotaciones o no 177 00:06:56,430 --> 00:06:58,129 Entonces por defecto no las tienen 178 00:06:58,129 --> 00:06:59,269 Entonces si usáis 179 00:06:59,269 --> 00:07:02,370 Lombok que necesita que el compilador 180 00:07:02,370 --> 00:07:03,810 Mire las anotaciones 181 00:07:03,810 --> 00:07:06,209 Pues simplemente en el proyecto 182 00:07:06,209 --> 00:07:09,050 tenéis que cambiarle aquí 183 00:07:09,050 --> 00:07:10,790 en propiedades 184 00:07:10,790 --> 00:07:14,870 en propiedades 185 00:07:14,870 --> 00:07:16,189 java compiler 186 00:07:16,189 --> 00:07:20,269 procesado de anotaciones 187 00:07:20,269 --> 00:07:20,910 sí 188 00:07:20,910 --> 00:07:24,790 tenéis que marcarle ahí 189 00:07:24,790 --> 00:07:26,810 para que procese 190 00:07:26,810 --> 00:07:28,689 las anotaciones el compilador 191 00:07:28,689 --> 00:07:30,649 para que las procese, si no lo marcáis 192 00:07:30,649 --> 00:07:33,350 el eclipse no las procesa 193 00:07:33,350 --> 00:07:34,949 pero esto es un tema ya de eclipse 194 00:07:34,949 --> 00:07:36,930 no de logro 195 00:07:36,930 --> 00:07:53,339 el Lombok este 196 00:07:53,339 --> 00:07:55,620 lo descarga uno para completarlo 197 00:07:55,620 --> 00:07:58,139 porque claro, también si trabajas con un entorno 198 00:07:58,139 --> 00:08:02,019 el entorno tiene que tener además 199 00:08:02,019 --> 00:08:03,339 algo más del Lombok instalado 200 00:08:03,339 --> 00:08:06,339 entonces si el Lombok este es un 201 00:08:06,339 --> 00:08:10,040 hard 202 00:08:10,040 --> 00:08:31,199 vale, pues 203 00:08:31,199 --> 00:08:34,899 para usar Lombok con el 204 00:08:34,899 --> 00:08:36,899 Eclipse, aparte de hacer lo que os he dicho 205 00:08:36,899 --> 00:08:39,159 de marcar en Java, compil, anotación 206 00:08:39,159 --> 00:08:40,919 hay que descargarse este 207 00:08:40,919 --> 00:08:42,840 hard y en el momento de 208 00:08:42,840 --> 00:08:46,519 ejecutarlo, te descargas 209 00:08:46,519 --> 00:08:48,340 este hard y cuando lo ejecutas 210 00:08:48,340 --> 00:08:51,860 pues él te dice, oye, ¿qué 211 00:08:51,860 --> 00:08:52,940 ides quieres usar? 212 00:08:54,179 --> 00:08:56,139 Entonces, bueno, él me ha ofrecido por defecto 213 00:08:56,139 --> 00:08:57,580 Eclipse porque es el que ha encontrado 214 00:08:57,580 --> 00:08:59,940 pero yo podría decirle 215 00:08:59,940 --> 00:09:01,860 la ruta de otro IDE mío, le digo 216 00:09:01,860 --> 00:09:03,779 no, espérate, que lo voy a usar también con 217 00:09:03,779 --> 00:09:05,799 Spring Tools, que es donde tengo Spring Tools 218 00:09:05,799 --> 00:09:08,620 Pues lo tengo 219 00:09:08,620 --> 00:09:10,620 Ahí 220 00:09:10,620 --> 00:09:11,820 Vale 221 00:09:11,820 --> 00:09:14,440 Lo tengo ahí 222 00:09:14,440 --> 00:09:16,679 Vale, entonces el ya 223 00:09:16,679 --> 00:09:18,700 Me lo instala 224 00:09:18,700 --> 00:09:20,919 También para este y para cualquier otro entorno 225 00:09:20,919 --> 00:09:21,700 Que yo meta aquí 226 00:09:21,700 --> 00:09:25,019 Pero tenéis que hacer antes esto, descargar el hub 227 00:09:25,019 --> 00:09:27,299 Ejecutarlo 228 00:09:27,299 --> 00:09:28,620 Meter aquí el entorno 229 00:09:28,620 --> 00:09:30,399 Con el que vayáis a trabajar con Lombok 230 00:09:30,399 --> 00:09:33,059 Yo ya lo tengo metido 231 00:09:33,059 --> 00:09:34,419 Y ya está 232 00:09:34,419 --> 00:09:39,960 No sé lo que significa Lombok 233 00:09:39,960 --> 00:09:42,419 Significará algo relacionado con eso 234 00:09:42,419 --> 00:09:45,769 Bueno 235 00:09:45,769 --> 00:09:48,610 Pues para que lo conozcáis 236 00:09:48,610 --> 00:09:50,429 Sobre todo son más interesantes los récords 237 00:09:50,429 --> 00:09:52,509 Yo creo, que ahí no necesitas tirar de nada 238 00:09:52,509 --> 00:09:53,870 Significa Chile 239 00:09:53,870 --> 00:09:55,950 Pues por eso 240 00:09:55,950 --> 00:10:00,649 Bueno, pues más