Okapi Project   Web technological site for the beginner... Top

無駄なオブジェクト?

このプログラムも、getConsole メソッドの中で BufferedReader クラスのインスタンスを作成しているので、メソッドを呼び出すごとにインスタンスが作られてしまします。ここも、毎回インスタンスを作成する必要はありません。

メソッド内で、インスタンスを作成するのでなく ConsoleInput クラスのインスタンス変数として BufferedReader を宣言することで ConsoleInput クラスのインスタンスが作成されたときのみ、BufferedReader クラスのインスタンスを作成するように修正します。

修正前の ConsoleInput クラス

public class ConsoleInput {

    /**
     * 引数の値をコンソールに出力し、コンソールより入力された値を
     * 戻り値として返却します。
     */
    public String getConsole(String outputConsole) throws IOException {

        BufferedReader buf =
                new BufferedReader(
                       new InputStreamReader(System.in),1);

        System.out.println(outputConsole);
        String inputValue = buf.readLine();

        return inputValue;
    }
}