Ejemplos De Generics

Primer Ejemplo

Cast
Este programa no usa generics por lo tanto tenemos un error en tiempo de ejecucion.
package Ejemplo1;
import java.util.Stack;
class Ej_1_1{
public static void main(String[] args){
Stack my_stack = new Stack();
Integer integer;
my_stack.push(new Integer(1));
my_stack.push("2");
my_stack.push(new Integer(3));
while(!my_stack.isEmpty()){
integer =(Integer)my_stack.pop();
System.out.println(integer);
}
}
}

Generics
Este programa implementa el uso de genrics. Van a tener un error de compilacion porque estan tratando de agregar un String a una pila que es solamente para Integer, y si comentan esta linea van a ver como el funcionamiento del programa.
Nota: Vamos a observar un 3 y luego un 1 ya que estamos utilizando una pila y recuerden que en una pila el ultimo en entrar es el primero en salir(LIFO)

package Ejemplo1;
import java.util.Stack;
class Ej_1_2{
public static void main(String[] args){
Stack<Integer>my_stack=new Stack<Integer>();
Integer integer;
my_stack.push(new Integer(1));
my_stack.push("2"); //Error de compilación
my_stack.push(new Integer(3));
while(!my_stack.isEmpty()){
integer=my_stack.pop();
System.out.println(integer);
}
}
}

Segundo Ejemplo

Cast
package Ejemplo3;
public class Ej_2_1{

private Object primero;
private Object segundo;

public Ej_2_1(Object primero, Object segundo){
this.primero=primero;
this.segundo=segundo;
}
public Object getPrimero(){
return this.primero;
}
public Object getSegundo(){
return this.segundo;
}
public static void main(String[]args){
Ej_2_1 ene = new Ej_2_1(new Integer(1),"Enero");
Ej_2_1 feb = new Ej_2_1("2","Febrero");

int numMes=((Integer)ene.getPrimero()).intValue();
String nombreMes=(String)ene.getSegundo();
System.out.println("Mes numero:"+numMes+",Nombre del mes "+nombreMes);

numMes=((Integer)feb.getPrimero()).intValue();
nombreMes=(String)feb.getSegundo();
System.out.println("Mes numero:"+numMes+",Nombre del mes "+nombreMes);
}
}

Generics

package Ejemplo3;
public class Ej_2_2<T1,T2>{
private T1 primero;
private T2 segundo;

public Ej_2_2(T1 primero, T2 segundo){
this.primero=primero;
this.segundo=segundo;
}
public T1 getPrimero(){
return this.primero;
}
public T2 getSegundo(){
return this.segundo;
}
public static void main(String[]args){
Ej_2_2<Integer,String> ene=new Ej_2_2<Integer,String>(1,"Enero");
//Ej_2_2<Integer,String> feb=new Ej_2_2<Integer,String>(2,"Febrero");
Ej_2_2<Integer,String> feb=new Ej_2_2<Integer,String>("2","Febrero");

System.out.println("Mes numero:"+ene.getPrimero()+",Mes "+ene.getSegundo());
System.out.println("Mes numero:"+feb.getPrimero()+",Mes "+feb.getSegundo());
}
}

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License