package com.trifulcas.colecciones;
public class EjemplosGenericos {
public static void main(String[] args) {
// Al ser tipo int llama a la primera función
System.out.println(mayor(4,3));
// Al ser tipo dobule llama a la segunda
System.out.println(mayor(4.6,3.5));
// Llamo a la función con parámetros de tipo double
System.out.println(mayorG(4.6,3.5));
// Llamo a la función con parámetros de tipo int
System.out.println(mayorG(3,4));
// Llamo a la función con parámetros de tipo String
System.out.println(mayorG("ana","pep"));
}
// Esta función tiene de tipo int
static int mayor(int a, int b) {
if (a>b) {
return a;
}
return b;
}
// Esta función es una sobrecarga con double
static double mayor(double a, double b) {
if (a>b) {
return a;
}
return b;
}
// Aquí utilizo un tipo genérico, puedo llamar a la función
// Con cualquier tipo (siempre que se pueda comparar, que eso es lo que significa extends Comparable<T>)
static <T extends Comparable<T>> T mayorG(T a, T b){
if (a.compareTo(b)>0) {
return a;
}
return b;
}
}