Crear una clase utility en Java

Rupam Yadav 12 octubre 2023
Crear una clase utility en Java

Las clases de utilidad en Java también se conocen como clases auxiliares. Es una forma eficiente de crear métodos que se pueden reutilizar. El código que necesitamos usar una y otra vez se puede colocar dentro de una clase de utilidad.

Uso de la clase de utilidad en Java

La clase de utilidad de Java es una clase sin estado que no se puede instanciar y declarar utilizando las palabras clave final y public. En el ejemplo que se muestra a continuación, tenemos un UtilityClassExample, que tiene un constructor privado que evita la creación de instancias. Por ejemplo, hay muchos ejemplos de clases Util en Java como Apache StringUtils, CollectionUtils o java.lang.Math.

Los métodos en la clase de utilidad deben ser declarados static y no abstract ya que los métodos de objetos necesitan instanciación. La palabra clave final evita la subclasificación. Aquí, creamos nuestra propia clase de utilidad con un constructor privado, que, cuando se invoca, genera una excepción. Como declaramos un constructor privado, no se puede crear por defecto; por lo tanto, la clase no puede ser instanciada.

En el código que se proporciona a continuación, tenemos todos los miembros de la estática UtilityClassExample. Si necesitamos sumar o restar dos variables de tipo int o float, creamos métodos en la clase de utilidad para reutilizar el código. También tenemos un método que devuelve un número multiplicado por diez.

En el método addFloatValues(), también hemos utilizado Math.round() para redondear el resultado al int más próximo. La clase Float tiene el método sum() que devuelve la suma de dos argumentos flotantes. Llamamos a cada método miembro de esta clase de utilidad pasando argumentos e imprimimos la salida en el método main() de la clase TestUtitity. Por lo tanto, esta clase de utilidad tiene métodos que se usan con mucha frecuencia.

public final class UtilityClassExample {
  private static final int constantValue = 10;
  private UtilityClassExample() {
    throw new java.lang.UnsupportedOperationException("Utility class and cannot be instantiated");
  }
  public static int addIntValues(int i, int j) {
    int sum = i + j;
    return sum;
  }
  public static int subIntValues(int i, int j) {
    int diff = 0;
    if (i > j) {
      diff = i - j;
    } else {
      diff = j - i;
    }
    return diff;
  }
  public static float addFloatValues(float i, float j) {
    float sum = Float.sum(i, j);
    return Math.round(sum);
  }
  public static float subFloatValues(float i, float j) {
    float diff = 0.00f;
    if (i > j) {
      diff = i - j;
    } else {
      diff = j - i;
    }
    return diff;
  }

  public static int returnValAfterMultiplying(int i) {
    return i * constantValue;
  }
}
class TestUtility {
  public static void main(String[] args) {
    int a = 4;
    int b = 9;
    int c = 7;
    float d = 3.12f;
    float e = 6.85f;

    System.out.println(+a + " multiplied by ten is : 				     "
        + UtilityClassExample.returnValAfterMultiplying(a));
    System.out.println(b + "+" + c + " is : " + UtilityClassExample.addIntValues(b, c));
    System.out.println(d + "+" + e + " is : " + UtilityClassExample.addFloatValues(d, e));
    System.out.println(b + "-" + a + " is : " + UtilityClassExample.subIntValues(b, a));
    System.out.println(e + "-" + d + " is : " + UtilityClassExample.subFloatValues(e, d));
  }
}

Producción :

4 multiplied by ten is : 40
9+7 is : 16
3.12+6.85 is : 10.0
9-4 is : 5
6.85-3.12 is : 3.73

No se recomienda utilizar una clase Utility propia ya que reduce la flexibilidad.

Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn