import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.Collections.*;
public class Main{
public static void main(String[] args){
//Consumidor: un solo valor y no devuelve valor alguno
Consumer<Empleado> consumerEmp = emp -> System.out.println(emp.toString());
Empleado empleado = new Empleado("Programador", 10, 120000.00);
empleado.setId(1);
empleado.setNombre("Mario");
empleado.setApellidos("Sanchez Lopez");
empleado.setEdad(33);
empleado.setAficiones("Lectura");
consumerEmp.accept(empleado);
//Proveedor: no tiene parametros de entrada, pero devuelve un resultado
Supplier<Empleado> empSupplier = () -> new Empleado(2, "Armand","Weller", 36, "Natacion","Analista", 12, 22000);
System.out.println(empSupplier.get());
//Predicado: reciben un argumento y devuelven un valor logico
Predicate<Empleado> empPredicate = emp -> emp.getPuesto().equalsIgnoreCase("Ingeniero");
if(empPredicate.test(new Empleado(3, "Julio","Matosa", 45, "Ver TV","Ingeniero", 10, 24000))){
System.out.println("Hola, ingeniero!!");
}
//Funciones: Reciben un argumento y devuelven un resultado
Function<Empleado, String> empFunction= (Empleado e)-> {return e.getNombre().concat(" "+e.getApellidos());};
System.out.println(empFunction.apply(new Empleado(2, "Armand","Weller", 36, "Natacion","Analista", 12, 22000)));
}
}
class Persona implements Comparable<Persona>{
private int id;
private String nombre;
private String apellidos;
private int edad;
private String aficiones;
public Persona(){}
public Persona(int id, String nombre,
String apellidos, int edad, String aficiones){
this.id=id;
this.nombre=nombre;
this.apellidos=apellidos;
this.edad=edad;
this.aficiones=aficiones;
}
public int getId(){
return id;
}
public void setId(int id){
this.id=id;
}
public String getNombre(){
return nombre;
}
public void setNombre(String nombre){
this.nombre=nombre;
}
public String getApellidos(){
return apellidos;
}
public void setApellidos(String apellidos){
this.apellidos=apellidos;
}
public int getEdad(){
return edad;
}
public void setEdad(int edad){
this.edad=edad;
}
public String getAficiones(){
return aficiones;
}
public void setAficiones(String aficiones){
this.aficiones=aficiones;
}
@Override
public String toString(){
return "\nPersona{id:"+id+", nombre:"+nombre
+", apellidos:"+apellidos+ ", edad:"+edad+", aficiones:"+aficiones+"}";
}
@Override
public int compareTo(Persona per){
if(this.id == per.id)
return 0;
else if(this.id > per.id)
return 1;
else
return -1;
}
}
class Empleado extends Persona {
private String puesto;
private int horas;
private double salario;
public Empleado(){}
public Empleado(int id, String nombre,
String apellidos, int edad, String aficiones,
String puesto, int horas, double salario) {
super(id, nombre,apellidos, edad, aficiones);
this.puesto = puesto;
this.horas = horas;
this.salario = salario;
}
public Empleado(String puesto, int horas, double salario) {
super();
this.puesto = puesto;
this.horas = horas;
this.salario = salario;
}
public Empleado(String puesto){
this(puesto, 0, 0.0);
}
public Empleado(int horas){
this("",horas, 0.0);
}
public Empleado(double salario){
this("", 0, salario);
}
public String getPuesto() {
return puesto;
}
public void setPuesto(String puesto) {
this.puesto = puesto;
}
public int getHoras() {
return horas;
}
public void setHoras(int horas) {
this.horas = horas;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
@Override
public String toString() {
return super.toString()+"::Empleado [puesto=" + puesto + ", horas=" + horas + ", salario=" + salario + "]";
}
}
Ejemplos de Lambdas en Java 8
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.