Skip to main content

Lambda JDK8 con NetBeans para Novatos

Ejemplo sencillo de Lambda con NetBeans

Crear un proyecto nuevo
File--> New Project-->Categories: Maven Projects: Java Application

Indicamos el nombre del proyecto

El IDE genera el esqueleto del proyecto



En propiedades del proyecto
Sources--> Source/Binary Format:



Crearemos una clase llamada Persona con los atributos (id,nombre,edad)
Clic derecho el paquete com.avbravo.testlambda --> New--> Java Class




Colocar el nombre: Persona

El IDE genera la nueva clase
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.avbravo.testlambda;

/**
 *
 * @author avbravo
 */
public class Persona {
    
}

Clic derecho en el código -->Seleccionar Insert Code...


Seleccionar Add Property...

Agregamos la propiedad id y tipo String. Se generan los métodos set/get
repetimos el proceso para el atributo String nombre, Integer edad;
Agregamos los métodos constructores
 public Persona() {
    }

    public Persona(String id, String nombre, Integer edad) {
        this.id = id;
        this.nombre = nombre;
        this.edad = edad;
    }

Agregar el método toString(). Clic derecho Insert Code---> toString()


@Override
    public String toString() {
        return "Persona{" + "id=" + id + ", nombre=" + nombre + ", edad=" + edad + '}';
    }

Código completo Persona.java:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.avbravo.testlambda;

/**
 *
 * @author avbravo
 */
public class Persona {
    
    private String id;

    private String nombre;

    private Integer edad;

    public Persona() {
    }

    public Persona(String id, String nombre, Integer edad) {
        this.id = id;
        this.nombre = nombre;
        this.edad = edad;
    }

   
    

    /**
     * Get the value of edad
     *
     * @return the value of edad
     */
    public Integer getEdad() {
        return edad;
    }

    /**
     * Set the value of edad
     *
     * @param edad new value of edad
     */
    public void setEdad(Integer edad) {
        this.edad = edad;
    }

    /**
     * Get the value of nombre
     *
     * @return the value of nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * Set the value of nombre
     *
     * @param nombre new value of nombre
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * Get the value of id
     *
     * @return the value of id
     */
    public String getId() {
        return id;
    }

    /**
     * Set the value of id
     *
     * @param id new value of id
     */
    public void setId(String id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "Persona{" + "id=" + id + ", nombre=" + nombre + ", edad=" + edad + '}';
    }


}

Crear una Java Main Class...





Agregamos un ArrayList<Persona> , escribimos un segmento de código sin usar Lambda, donde usamos un for y una condición lógica para filtrar 
  for(Persona p:list){
                  if(p.getEdad() >=30 ){
                       System.out.println(" --> "+p.toString());
                  }
                 
              }
clic en el asistente y seleccionar Use functional Operation

el ide genera el código lambda
 list.stream().filter((p) -> (p.getEdad() >=30 )).forEach((p) -> {
                System.out.println(" --> "+p.toString());
            });

Se usa un stream() de la lista ,se aplica el filtro 


Código Completo

  package com.avbravo.testlambda;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author avbravo
 */
public class Prueba {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       try {
              List<Persona> list = new ArrayList<>();
              list.add(new Persona("1","anna",25));
              list.add(new Persona("2","jhoan",30));
              list.add(new Persona("3","maria",40));
              System.out.println(" sin utilizar lambda");
              for(Persona p:list){
                  if(p.getEdad() >=30 ){
                       System.out.println(" --> "+p.toString());
                  }
                 
              }
              System.out.println("lambda");
              list.stream().filter((p) -> (p.getEdad() >=30 )).forEach((p) -> {
                System.out.println(" --> "+p.toString());
            });
        } catch (Exception e) {
            System.out.println("Error "+e.getLocalizedMessage());
        }
      
    }

Ejecutamos el proyecto

    
}

Comments

Popular posts from this blog

Un ejemplo sencillo de Refactorización y Genericos

Un ejemplo sencillo de Refactorización y Genericos

public class Refactorizador<K, V> {

    public V copyFromBeans(K k, V v) {
        try {
            Class claseK = k.getClass();
            Class claseV = v.getClass();

            Method[] metodosK = claseK.getMethods();

            for (Method method : metodosK) {
                if (isGetter(method)) {
                    Method metodoGetK = claseK.getDeclaredMethod(method.getName());
                    Method metodoSetV = claseV.getDeclaredMethod(changeGetBySet(method.getName()), method.getReturnType());
                    metodoSetV.invoke(v, metodoGetK.invoke(k));
                }

            }

        } catch (Exception e) {
            System.out.println("refactorizador() " + e.getLocalizedMessage());
        }
        return v;
    }

     public  boolean isGetter(Method method) {

        if (!method.getName().startsWith("get")) {
            return false;
        }
        if (method.getName().startsWith("getCla…

Apache NetBeans

Apache NetBeans
https://wiki.apache.org/incubator/NetBeansProposal

Si, algo que se esperaba desde hace muchos años, una liberación de NetBeans, para convertirlo en un IDE más abierto, y que permita mayor contribución de la comunidad y de otras empresas, ya inicio su primera etapa en la incubadora de la Fundación Apache.
Las implicaciones que esto conlleva son múltiples por una parte esta la evolución de NetBeans, al permitir que más contribuyentes puedan aportar a sus mejoras, también garantiza que aquellas instituciones no sientan que es una sola organización la que controla la evolución. A las comunidades les permite sentirse que participan de un proyecto con todas las garantías que ofrece la Fundación Apache.

Muchos pensaran que Oracle esta dejando morir el proyecto, la realidad es diferente, hay muchos ingenieros que están participando del proyecto en la fundación Apache.
Es una noticia excelente para los desarrolladores, instituciones, empresas que utilizan NetBeans , se estima qu…

JGMongo con JEE7 +(Primefaces+MongoDB+GlassFish)

Mostrare un ejemplo básico del uso de JGMongo, (Java Mapper Object para MongoDB), en un entorno JavaEE 7.

Desarrollaremos una simple aplicación maven Java Enterprise Edition, que utiliza la base de datos NoSQL MongoDB, NetBeans como IDE de Desarrollo, Java Server Faces como Framework en conjunto con PrimeFaces. Es un ejemplo muy básico donde se almacena los datos de los países en una colección llama paises La vista final sera la siguiente un formulario para captar los datos

Y una pagina donde se muestran los países almacenados en la base de datos.
Pasos previos: 1. Instalar MongoDB 2. Crear el proyecto Maven 3. Agregar la dependencia al archivo pom.xml   <repositories> <repository>    <id>jitpack.io</id>    <url>https://jitpack.io</url> </repository> </repositories>
    <dependency>    <groupId>com.github.avbravo</groupId>    <artifactId>jgmongo</artifactId>    <version>0.1</version> </dependency&…