Bien, veamos cómo limitar a los tipos genéricos, bueno, que también se le conoce como Bandit Generics,
pero bien, acá tenemos algunas listas, por ejemplo de cliente y de enteros, y pasamos un arreglo
cliente, un arreglo enteros.
Bien, pero fíjense en lo siguiente qué pasa si quiero limitar este método from array chulis?
Solamente que sean tipos number de yaba, por ejemplo?
Recuerden que un tipo number es un integer, es un chord, es un bit, es un long.
Cualquier tipo numérico también un float, un doble.
Se fijan todo.
Heredan de Lambert number en la clase abstracta.
Entonces extends acá en el generics cuando indicamos o especificamos este parámetro en el método.
Recuerden, son parámetros pero de genéricos, porque acá tenemos parámetros método y acá tenemos parámetro
del método, pero relacionado a los genéricos.
Bien stents number se fijan.
Acá podemos pasar solamente tipos de lampert.
Por supuesto, cliente marca un error.
Acá no se aplica, se fijan, ya no cumple con este contrato, pero sin embargo List@ Integer si lo
cumple estamos limitando los genéricos.
Por lo tanto, así como Integer también podemos pasar un tipo long, un tipo chord, un bit, se fijan
un double.
En fin.
Ahora bien, también podríamos tener sobrecarga.
Es decir, voy a copiar este método.
Se van a fijar que lo voy a pegar acá y este lo voy a quitar luego voy a dejar como estaba.
Entonces uno acepta todo y otro solamente en Ámber, aunque pueden tener incluso implementaciones distintas,
lo mismo.
Entonces claro, este método acá from array, tu list va a invocar esta acá, por supuesto, y lo podremos
ver acá en la firma.
El método se fija en public static solamente the list se fijan este método, mientras que en Laka from
a right tu listo te estén lampert la clase abstracta number.
Bueno, aprovechando, recuerden que la clase number va a hacer un clic acá de ya va, estoy tras abstracta.
No se crean todos los tipos entero, como los double, float, integer, long.
En fin, chord.
Y tiene método abstracto.
Tienen que también por ahí lo vimos.
Entonces, contra el click se fijan una clase abstracta o menos lo que hemos visto con métodos abstracto
public abstract para convertir a entero convertir al lonko y cada implementación implementa estos métodos
con su propia forma.
También tiene métodos implementados, alguno implementado y otros abstracto abstracto para convertir
hacia Primitivo todo lo que sea long, value, flow, value.
Devuélvalo.
Int válido.
En fin.
Ok, continuemos.
Bien, veamos otro ejemplo.
Qué pasa si tengo clientes por acá?
Modelo tengo cliente, pero voy a tener un cliente premium.
Entonces voy a crear una clase ok?
Y por supuesto, hereda extends de cliente.
Perfecto.
Solamente voy a sobrescribir el constructor.
El constructor porque recuerden, cliente lo tenemos acá.
Acá tienen los atributos.
Tiene un constructor y también un constructor con argumento.
Voy a escribir este de acá y todo los métodos que transceptor cierto que son public, así que lo podríamos
utilizar, así que está bien, igual que lo demás.
Entonces solamente el constructor lideré.
Yo generé constructor.
Este de acá.
Ok.
Listo con el super.
Nada más.
Bueno, obviamente podré tener atributos propios, pero para el ejemplo de lo mismo lo dejamos tal cual.
Bien, entonces podríamos tener otro método.
Acá voy a copiar.
Stents cliente, es decir, en este método va a aceptar cualquier tipo o genérico que sea del tipo cliente
y también subclases, es decir, clases que heredan de cliente como cliente premio.
Entonces por lo tanto está acá list@ cliente va a invocar ahora el método que creamos recién.
La sobrecarga quiere de cliente porque es el más cercano, es el más, es con el tipo más preciso,
por así decirlo.
Bien, vamos a crear entonces una lista por acá abajo.
Una lista de clientes, pero el cliente premium se fija en este nuevo tipo de clientes premium.
Listo.
Igual from a Raito listo y vamos a hacer el arreglo.
Bueno, New va a ser un arreglo del tipo cliente premium corchete y las llaves.
Ahí lo estamos.
Instanciar al vuelo.
Voy a bajar acá en el new bajamos.
Perfecto.
Y acá un new cliente premium,
por ejemplo Fernández, y podríamos tener mucho más.
Pero para ejemplo, bueno, uno solo cliente, premio, cuál se invoca?
Cual se llama?
Bueno, por supuesto querida de cliente.
Entonces de esa forma podemos ir acotando los tipos genéricos.
Entonces en este método que implementamos recién estén tinente, acá podemos trabajar con los tipos
ya sea cliente o su descendencia cliente premium y este de acá del tipo number, ya sea del tipo integer
o cualquier implementación, ten hambre, cualquier tipo numérico de Yaba queda más acotado.
Y qué pasa si coloco por ejemplo acá en cliente un AR Prashant por ejemplo, y acá alguna implementación
de interfaz?
Porque claro, puedo ser más tovía concreto, limitar más y decir que sea solamente un tipo de una clase,
pero además que implemente algunas interfaces, por ejemplo comparable, comparable, caté e compararle.
También usamos genéricos porque recuerden, la interfaz comparable también maneja genéricos con el tipo
de la clase que lo implementa.
Importante para evitar Select cast en el método Compartid entonces por eso lo colocamos operador diamante
y la T en comparable se fija en que además cliente implemente o los tipos de cliente implementen la
interfaz comparable.
Bueno, por supuesto que ninguno de estos dos ni este se fijan, ni tampoco cliente premium va a invocar
ese método.
Se invoca el sin estèn, sin el límite este de acá porque el cliente no implementa comparable cliente
premium tampoco.
Ahora, claro, revisemos el cliente primero.
Acá se fijan.
Cliente Premium, por acá se fijan.
Tampoco acá tienen método.
Solamente invocÃ a él sin límites, sin extends este de acá.
Pero voy a ser cliente premium implemente interfaz implementas comparable
cliente premium.
Implementamos el método, aunque no voy a implementar el método, solamente lo dejaré así, acá lo podemos
implementar, da lo mismo si solamente para el ejemplo.
Acá podemos comparar, por ejemplo por algún atributo con el compartid ya se nombre el apellido, el
Heidy o lo que queramos.
Pero bien, si se fijan ahora.
Cliente Premium invocÃ el cliente con el comparable porque cumple contrato es del tipo cliente, sí,
pero también implementa la interfaz comparable ahora cliente no, por acá tenemos cliente acá este no,
este sigue invocando el método sin el límite, sin el extends este de acá, porque el cliente no implementa
la interfaz comparable, pero cliente premium.
Si se fijan nada más continuamos en la siguiente clase.