Java でユーティリティクラスを作成する

Rupam Yadav 2023年10月12日
Java でユーティリティクラスを作成する

Java のユーティリティクラスは、ヘルパークラスとも呼ばれます。これは、再利用できるメソッドを作成するための効率的な方法です。何度も使用する必要のあるコードは、ユーティリティクラス内に配置できます。

Java でのユーティリティクラスの使用

Java ユーティリティクラスはステートレスクラスであり、final および public キーワードを使用してインスタンス化および宣言することはできません。以下の例では、インスタンス化を防ぐプライベートコンストラクターを持つ UtilityClassExample があります。たとえば、Apache StringUtilsCollectionUtilsjava.lang.Math などの Java の Util クラスの例はたくさんあります。

オブジェクトメソッドにはインスタンス化が必要なため、ユーティリティクラスのメソッドは、abstract ではなく static に宣言する必要があります。最後のキーワードはサブクラス化を防ぎます。ここでは、private コンストラクターを使用して独自の Utility クラスを作成します。このコンストラクターは、呼び出されると例外をスローします。private コンストラクターを宣言したため、デフォルトを作成できません。したがって、クラスをインスタンス化することはできません。

以下のコードでは、UtilityClassExample のすべてのメンバを static にしています。2つの int または float 型変数を加算または減算する必要がある場合は、コードを再利用するためにユーティリティクラスにメソッドを作成しました。10 を掛けた数値を返すメソッドもあります。

メソッド addFloatValues() では、Math.round() を使用して結果を最も近い int に丸めています。Float クラスには、2つの float 引数の合計を返す sum() メソッドがあります。このユーティリティクラスの各メンバーメソッドを呼び出して引数を渡し、クラス TestUtititymain() メソッドに出力を出力します。したがって、このユーティリティクラスには、非常に頻繁に使用されるメソッドがあります。

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));
  }
}

出力:

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

柔軟性が低下するため、独自の Utility クラスを使用することはお勧めしません。

著者: Rupam Yadav
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