2

私は現在、すべてが 1 つのクラスにあり、複数のメソッドを持つプロジェクトを持っています。これまでのところ、各方法で、スキャナーを初期化するために、上部にあるこのコード行を使用する必要がありました。ユーザーからの入力を取得します。

Scanner input = new Scanner(System.in);

私の質問は、これを行うためのより効率的な方法はありますか?

編集:効率的とは、つまり、この1行のコードを書かなければならない時間を減らすことですか? 一度初期化して再利用できる方法はありますか?

4

2 に答える 2

1

それはおそらくあなたのパフォーマンスにほとんど影響を与えませんが、あなたが私のようで、神経学的に効率的な方法でそれを行いたい場合はinput、クラスのフィールドを作成することをお勧めします. このようにして、クラス スコープを利用し、すべてのメソッドにアクセスできるようになります。常に有効なスキャナー (null ではない) であることを確認するには、おそらくpublic static final次のようにする必要があります。

class TheClass
{
    public static final Scanner input = new Scanner(System.in);

    public void someMethod()
    {
          String text = input.readLine();
    }

    ...
}
于 2013-01-22T19:21:27.433 に答える
0
Scanner input 

外部のメソッド、およびそれらのすべてによって使用されますか?多分それを静的として作成しますか?

コンストラクターにこのコードを入れることができます

input = new Scanner(System.in); 

または、静的な方法で移動する場合は、このコードを追加できます

static Scanner input;

static {
  input= new Scanner(System.in); 
 }

これはあなたの場合に機能しますか?

あなたの目標が正確に何であるかわからない。

于 2013-01-22T19:15:57.397 に答える