Ir al contenido principal

Variables "anónimas" en Java

 


Las nuevas versiones de Java (desde la 11) nos traen muchos cambios que pueden volar la cabeza a más de un programador Java que sigue usando el JDK 8 o inferiores. Uno de estos cambios son las famosas variables "anónimas".

Variables "anónimas"
package org.info;

/**
*
*@author Comunidad City Java
*@date 31/03/2021
*
*/

public class Main{
   public static void main(String[] args){
      testA();   
   }

   public static void testA(){
     var entero = 32;
     var cadena = "Esta es una cadena en Java";
     var flotante = 23.7f;
     var real = 45.3;
     var caracter = '\u9943';
     var claveLarga = 12330000L;
     var booleano = 45 > 43;
     System.out.println("**** Tipos anonimos ****");
     System.out.printf("Entero: %d \n",entero);
     System.out.println("Cadena: "+cadena);
     System.out.println("Caracter: "+caracter);
     System.out.println("Flotante: "+flotante);
     System.out.println("Double: "+real);
     System.out.println("Clave larga: "+claveLarga);
     if(booleano){
       System.out.println("Hola, amigos!!");
     }
   }
} 

Como se puede ver en el programa Main.java se puede observar que no definimos el tipo de las variables. Sin embargo, una vez que a la variable se le ha asignado un valor éste no podrá ser re asignado. Por lo que este fragmento de código causaría un error en tiempo de compilación.

entero = "Ahora soy una cadena";
System.out.println("Entero: "+entero);

También podemos hacer cosas como esto:
var lista = List.of(1,2,3,4,5,6);
var obj = new Main();
     
if(obj instanceof Main){
  System.out.println("Es de tipo Main");
}   
for(Integer e : lista){
  System.out.println(e);
}

Crear una lista "anónima" y un objeto "anónimo".

El programa compilará y se ejecutará sin problema alguno. 

Otra de las nuevas características es crear una clase mediante la palabra record, la cual es tan solo un nuevo camino para crear un nuevo tipo.

package info;

public class Main{
   
   record Punto(int x, int y){}

   public static void main(String[] args){
      // instanciamos la clase Punto 
      var punto = new Punto(3,2);
      
      //Accedemos a sus atributos: x & y
      System.out.println(punto.x());
      System.out.println(punto.y());

      //el método toString() ya va integrado
      System.out.println(punto);
   }

}
En este ejemplo podemos ver como hemos creado un nuevo tipo llamado Punto, accedemos a sus atributos e imprimimos en consola todo el objeto.


Enlaces:
https://www.adictosaltrabajo.com/2019/02/26/de-java-8-a-java-11-aun-no-te-has-migrado/
https://dev.to/jackcmeyer/what-s-new-in-java-15-record-44bl
https://medium.com/the-java-report/java-11-sneak-peek-local-variable-type-inference-var-extended-to-lambda-expression-parameters-e31e3338f1fe

Comentarios

Entradas populares de este blog

Clojure para programadores Java (1)

Clojure es un lenguaje de programación similar a Lisp. Corre bajo la JVM (Java Virtual Machine) y emplea la programación funcional y orientada a objetos. El sitio oficial dice: Clojure es un lenguaje de programación robusto, práctico y rápido con un conjunto de características útiles que juntas forman una herramienta simple, coherente y poderosa. Creando el Hola,mundo en Clojure. holamundo.clj (println "Hola, mundo en Clojure!!" ) La extensión de un programa en este lenguaje es .clj Como se puede notar la base es colocar las sentencias entre parentesis. ( operador/funcion var1 var2 varN) Deberás descargar Clojure, tener instalado Maven y Java. A continuación se muestra una forma de obtener el JAR de Clojure para ejecutar nuestros programas. En la Línea final podemos acceder al shel o REPL del lenguaje. $ git clone https ://github.com/clojure/clojure.git $ cd clojure $ mvn -Plocal -Dmaven.test.skip=true package $ java -jar clojure.jar E

Explorando la Programación Orientada a Aspectos (AOP), con @domix

Clojure para programadores Java(2)

      Siguiendo la serie de post sobre Clojure veremos los tipos de datos en este lenguaje de programación. Como cualquier otro lenguaje dependiente de la JVM posee tipos de datos. Ejemplos de tipos de datos en Clojure  "Esto es una cadena de texto. "  String  'W'  Character  34500  Long  7.54  Double  nil  null  bar  símbolo en Clojure  :bar  llave en Clojure  (1 2 3)  lista en Clojure  [1 2 3]  vector en Clojure  {"Alef" 1 "Bet" 2 }  mapa en Clojure REPL de Clojure Abrimos una terminal y tecleamos clj. Esto abrirá un REPL: Clojure 1.10 .2 user=> 1 +2 +3 +4 1 2 3 4 user=> + 3 4 5 6 # object[clojure.core$_PLUS_ 0 x1d572e62 "clojure.core$_PLUS_@1d572e62" ] 3 4 5 6 user=> (+ 3 4 5 6 ) 18 user=> ( * 4 5 6 7 ) 840 user=> "Esto es una cadena en Clojure." "Esto es una cadena en Clojure." user=> ( def texto "