DEV Community

TANIAOKA, Akihiro
TANIAOKA, Akihiro

Posted on

13章9

新たに可変長引数を受け取るメソッドsetValue(String... values)をオーバーロード(追加)する。

つまり、以下のようにAクラスを修正することで、可変長引数を受け取る要求に応じられます:

  1. 単一の文字列を受け取る既存のsetValue(String value)はそのままにします。
  2. 複数の文字列(可変長引数)を受け取る新たなsetValue(String... values)メソッドを追加します。
public class A {
    private String value;

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value; // 既存のメソッド
    }

    public void setValue(String... values) {
        StringBuilder sb = new StringBuilder();
        for (String val : values) {
            sb.append(val);
        }
        this.value = sb.toString(); // 新たなメソッド
    }

    public String toString() {
        return getValue();
    }
}
Enter fullscreen mode Exit fullscreen mode

このようにすることで、Aクラスは単一の文字列または文字列の配列、いずれかを受け取ることが可能になり、Mainクラスでa.setValue(args);を呼び出した際にエラーが発生しなくなります。

Top comments (0)