0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Springbatch バリデーション

Posted at

理解しました。汎用的なチェックメソッドを作成して、数値チェックや桁数チェックを行うサンプルコードを以下に示します。これにより、異なる条件で配列の要素をチェックできるようになります。

import java.util.Arrays;

public class ArrayElementCheck {
    public static void main(String[] args) {
        // 整数型の配列を作成
        int[] numbers = { 10, 25, 7, 32, 18 };

        // 数値チェック
        System.out.println("=== 数値チェック ===");
        checkArray(numbers, ArrayElementCheck::isNumber);

        // 桁数チェック
        System.out.println("=== 桁数チェック ===");
        checkArray(numbers, n -> isDigitCount(n, 2)); // 2桁の数値かどうかをチェック

        // 他のチェックを追加したい場合はここにメソッド参照を追加

        // String型の配列を作成
        String[] words = { "apple", "banana", "cherry", "date" };

        // 文字数チェック
        System.out.println("=== 文字数チェック ===");
        checkArray(words, n -> isCharacterCount(n, 5)); // 5文字の単語かどうかをチェック
    }

    // 数値チェック用メソッド
    public static boolean isNumber(int number) {
        return true; // ここに数値チェックのロジックを追加
    }

    // 桁数チェック用メソッド
    public static boolean isDigitCount(int number, int digitCount) {
        return String.valueOf(number).length() == digitCount;
    }

    // 文字数チェック用メソッド
    public static boolean isCharacterCount(String word, int charCount) {
        return word.length() == charCount;
    }

    // 汎用的な配列要素チェックメソッド
    public static <T> void checkArray(T[] array, CheckFunction<T> checkFunction) {
        for (int i = 0; i < array.length; i++) {
            T element = array[i];
            boolean result = checkFunction.check(element);

            // チェック結果を出力
            System.out.println("Element " + (i + 1) + ": " + element);
            System.out.println("Check Result: " + result);
            System.out.println("-----------------------");
        }
    }

    // 関数型インターフェースの定義
    interface CheckFunction<T> {
        boolean check(T element);
    }
}

上記のサンプルコードでは、ArrayElementCheckクラスにisNumberisDigitCountisCharacterCountなど、異なるチェックを行うメソッドを追加しました。これらのメソッドはそれぞれ数値のチェック、桁数のチェック、文字数のチェックを行います。

また、checkArrayメソッドは汎用的な配列要素チェックメソッドです。このメソッドは関数型インターフェースCheckFunctionを使用して、異なるチェックロジックをカプセル化しています。checkArrayメソッドは配列とチェック用の関数を受け取り、配列内の要素に対してチェックを実行しています。

これにより、異なるチェック内容を簡単に追加・変更できるようになります。必要に応じて、さらなるチェックメソッドを追加し、checkArrayメソッドを呼び出して異なるチェックを行うことができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?