簡単なユーティリティクラス作成(static メソッド) — 共通処理集約
Javaでは「よく使う処理」を一箇所にまとめておくと便利です。
そのために ユーティリティクラス を作り、static メソッドで呼び出せるようにします。
初心者向けに、基本から例題までかみ砕いて説明します。
ユーティリティクラスの特徴
- インスタンス不要:
newしなくても呼び出せる。 - 共通処理集約: 文字列操作、数値計算、日付処理などをまとめる。
- 再利用性向上: プロジェクト全体で同じ処理を使い回せる。
- 慣習: コンストラクタを
privateにしてインスタンス化できないようにする。
基本構文
public class MyUtils {
// インスタンス化禁止
private MyUtils() {}
// 共通処理: 文字列が空かどうか
public static boolean isEmpty(String s) {
return s == null || s.isEmpty();
}
// 共通処理: 最大値を返す
public static int max(int a, int b) {
return (a > b) ? a : b;
}
}
Java👉 呼び出し例:
boolean empty = MyUtils.isEmpty("");
int bigger = MyUtils.max(10, 20);
Java例題で練習
例題1: 文字列ユーティリティ
public class StringUtils {
private StringUtils() {}
public static String capitalize(String s) {
if (s == null || s.isEmpty()) return s;
return s.substring(0,1).toUpperCase() + s.substring(1);
}
}
Java呼び出し:
System.out.println(StringUtils.capitalize("hello")); // Hello
Java例題2: 数値ユーティリティ
public class MathUtils {
private MathUtils() {}
public static int sum(int... nums) {
int total = 0;
for (int n : nums) total += n;
return total;
}
public static double average(int... nums) {
return (double) sum(nums) / nums.length;
}
}
Java呼び出し:
System.out.println(MathUtils.sum(1,2,3,4)); // 10
System.out.println(MathUtils.average(1,2,3,4)); // 2.5
Java例題3: 日付ユーティリティ(java.time)
import java.time.*;
public class DateUtils {
private DateUtils() {}
public static String today() {
return LocalDate.now().toString();
}
public static boolean isWeekend(LocalDate date) {
DayOfWeek dow = date.getDayOfWeek();
return dow == DayOfWeek.SATURDAY || dow == DayOfWeek.SUNDAY;
}
}
Java呼び出し:
System.out.println(DateUtils.today()); // 2025-12-07 など
System.out.println(DateUtils.isWeekend(LocalDate.now())); // true/false
Javaテンプレート集
ユーティリティクラスの基本形
public class Utils {
private Utils() {} // インスタンス化禁止
public static 戻り値型 メソッド名(引数...) {
// 処理
}
}
Java呼び出し
Utils.メソッド名(引数...);
Java実務のコツと落とし穴
- インスタンス化禁止:
privateコンストラクタで封じる。 - static メソッドは副作用少なく: 共通処理は「入力→出力」に徹する。
- パッケージ分け:
StringUtils,MathUtils,DateUtilsのように役割ごとに分ける。 - 既存ライブラリ活用: Apache Commons Lang や Guava などにも便利なユーティリティがある。
まとめ
- ユーティリティクラスは「共通処理の倉庫」。
- static メソッドでインスタンス不要。
- 役割ごとに分けて整理するとプロジェクト全体で使いやすい。
👉 練習課題として「配列の最大値を返すユーティリティ」を作ってみると、static メソッドの便利さが体感できます。
