Las 5 características principales de Java 17 que debe conocer

El cambio es lo único constante y, según la Teoría de la supervivencia del más apto de Darwin, el individuo que se adapta al mundo en evolución se mantendrá a sí mismo a largo plazo. Parece que esta teoría también es cierta para Java, ya que está en constante evolución y sirviendo durante más de dos décadas. Desde JDK 1.0 hasta Java 17 (LTS) ha recorrido un largo camino. Java 17 es la última versión de soporte a largo plazo (LTS) para la plataforma SE. Fue lanzado el 15 de septiembre de 2021 y ha presentado un paquete de funciones que no debemos dejar sin explorar.

Top-5-Features-of-Java-17-That-You-Must-Know

Agregar funciones en cualquier lenguaje de programación mejora su rendimiento y, por lo tanto, facilita la complejidad del código. Por ejemplo, C# fue inicialmente un clon de Java , pero al agregarle más funciones, nació C#. Si bien hay muchas características que se presentan en Java 17, hablemos de algunas de ellas. En este artículo, vamos a discutir las 5 características principales de Java 17.

1. Restricción de la implementación con clases e interfaces selladas

Las clases selladas eran una función de vista previa en JDK 15 y ahora se han incorporado como una función completa en JDK 17. Cuando se introdujo la herencia , hubo una opinión mixta de las personas, ya que no restringía el número de implementaciones. Las clases selladas ponen fin a esto, ya que es una característica con la que se pueden restringir las implementaciones. Para ir al grano, las clases selladas nos dan el privilegio de controlar qué clases o modelos pueden implementar o extender esa interfaz o clase respectivamente. Representa jerarquías de clases restringidas que proporcionan control sobre una herencia. Para una clase sellada, todas las subclases directas deben conocerse en tiempo de compilación y los clientes de terceros no pueden extender una clase sellada en su código. Para hacer una clase Java, una clase Java sellada, agregue el modificador sellado a su declaración, y la palabra clave permisos se coloca para indicar las clases que están permitidas para la clase sellada dada.

La clase sellada Fruit especifica tres subclases permitidas, Square, Rectangle y Circle:

paquete com.geeksforgeeks.ejemplo.figuras

Permisos de forma de clase pública sellada, Cuadrado, Rectángulo, Círculo { }

2. Usar Null en Switch Case ahora es legal

Anteriormente, mantenemos la expresión del selector como nula en la declaración de cambio y la expresión utilizada para lanzar NullPointerException y esencialmente tenemos que lanzar una excepción de puntero nulo para estar en un lado más seguro. Para resolver este problema, Java 17 ha creado una función en la que podemos poner nulo como una expresión de selector en expresiones de cambio de caso . Considere el siguiente ejemplo donde podemos pasar nulo como una expresión selectora .  

cambiar (número de verificación) {

case 1,7 -> System.out.println(“número impar”);

case 2,8 -> System.out.println(“número par”);

case null -> System.out.println(“No definido”);

predeterminado -> System.out.println («no es un número»);

}

Aquí, la variable checkNumber obtiene un número como entrada. Si se pasa nulo como entrada, se muestra «No definido» como salida. Tenga en cuenta que, para el caso 1,7 y el caso 2,8, también se deben tomar otros números pares e impares en la expresión del selector para el correcto funcionamiento del código. Solo se toman unos pocos para mantener la simplicidad del ejemplo.  

3. Fin de adivinar la causa de la excepción de puntero nulo

Ya sea trabajando con listas vinculadas o simplemente con un fragmento de código que hace referencia a un objeto, siempre existe el riesgo de que se haga referencia a un objeto nulo que puede hacer que las cosas lleguen a cero si no se maneja bien. La depuración y los registros de Java pueden ayudar, pero la depuración en sí es una tarea que lleva tiempo y los registros de Java no son tan buenos para proporcionar detalles sobre el objeto culpable que causó la NullPointerException . Aquí, la función de guía NullPointerException de Java 17 es un amigo, ya que proporciona el nombre exacto de la variable que es nula del seguimiento de la pila de la excepción . Por lo tanto, esta característica nos evita problemas de depuración y termina el juego de adivinanzas de descubrir el puntero que se volvió nulo.  

4. Redefinición de las expresiones de instrucciones Switch

Olvidar un solo corte entre varias líneas de declaraciones de cambio de caso no es para nada un invitado bienvenido. Además, el patrón case-break-case-break no parece ser un buen negocio cuando se trata de muchos casos de cambio. ¡Sí, ahora no tenemos que romper con el uso frecuente de break! Java abordó nuestra preocupación y aquí presentamos las nuevas expresiones de declaración de cambio en Java 17 . Las nuevas expresiones de cambio son menos propensas a errores ya que ahora son más limpias y simples. El uso de símbolos de flecha no solo elimina la funcionalidad fallida, sino que también la hace más legible y fácil de depurar. 

Podemos incluir más de un valor en un mismo bloque separándolos con una coma. Una de las características importantes es la introducción de la palabra clave yield . En el fragmento de código, en la ejecución de la declaración predeterminada, System.out.println() se ejecutará y la variable identificarTyres terminará siendo «Vehículo desconocido» porque esto es lo que debe producir el valor predeterminado.

String identifiqueNeumáticos = cambiar (vehículo) {  

                                   caso Coche -> “cuatro”;  

                                   caso Bicicleta, Ciclo -> “dos”;  

                                   case Autorickshaw -> “tres”;

                                   predeterminado -> { System.out.println(“No se pudo encontrar el vehículo”);  

                                                      producir «Vehículo desconocido»;  

                                    };

5. Reducción de líneas de código con clases de registro

Las clases de registro se previsualizaron en Java 14 . El código POJO más complejo y feo se ve mejor cuando se implementa con Records. Ambos son inmutables y definitivos. Los campos del Registro no se pueden cambiar después de la creación y tampoco se permite la extensión de la clase Registros. Con razón, son las clases de solo datos que administran el código repetitivo de los POJO. Los registros son muy útiles cuando lo único que queremos es mantener temporalmente datos inmutables. En el fragmento de código, Datos es un registro y a y b se denominan componentes del registro de Datos. Al definir un registro, obtenemos un método equals(), un método hashcode() ya implementado y un método toString()implementación para imprimir los componentes del registro junto con los nombres de los componentes.  

registrar datos (largo a, largo b) { }

Los datos de registro anteriores son equivalentes a las siguientes líneas de código:

datos de clase finales públicos {

   final privado largo a;

   privado final largo b;

   Datos públicos (largo a, largo b) {

       esto.a = a;

       esto.b = b;

   }

   long a() { devuelve esto.a; }

   long b() { devuelve esto.b; }

    // Implementación de equals() y hashCode(), que especifican

     booleano público es igual a…

     código hash int público…

    // Una implementación de toString() que devuelve una string

     String pública a String() {…}

}

Las mencionadas anteriormente son las 5 características principales de Java 17 LTE . Haga clic aquí para explorar más características interesantes de Java 17 . Admitamos que siempre estamos interesados ​​en nuevas características, ya sean teléfonos móviles, televisión, lavadoras y demás. Java no es menos en este caso y siempre nos sorprende con las mejoras e introducción de nuevas funcionalidades. Experimentar con nuevas funciones en el código Java no solo mejora nuestro conocimiento en el campo de Java, sino que también nos mantiene motivados para aprender y mejorar nuestras habilidades. Java 17 LTE es un gran aprobado ya que estas características son aceptables y facilitan las tareas para los desarrolladores de Java.

Publicación traducida automáticamente

Artículo escrito por yashi_agarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *