2017-07-06 3 views
-3

私はJavaを使い慣れていないので、簡単なコードで練習しています。いくつかのメソッドを作成して、すべてのメソッドにScannerを使用したいと思いますが、他の新しいメソッドを作成するたびにScannerを宣言したくありません。多くの異なるメソッドにスキャナを使用する

ここに私のコードです。これは正しいです?これを行うより良い方法はありますか?

import java.util.*; 

public class TripPlanner { 

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

    public static void main(String[] args) { 
     Greeting(); 
    } 

    public static void Greeting() { 
     System.out.println("Welcome to Vacation Planner"); 
     System.out.print("What is your name? "); 
     String name = input.nextLine(); 
     System.out.print("Nice to meet you " + name +", where are you travelling to? "); 
     String place = input.nextLine(); 
     System.out.println("Great! " + place + " sounds like a great trip"); 
     System.out.println("************"); 
     System.out.println("\n"); 
    } 
} 
+0

のためのものを作る、しかし、注意することが重要になることはありませんこのようなステートフルなリソース(またはデータベース接続)を複数のメソッドに渡したい場合、アプリケーション全体を絡み合ったステートマシンをデバッグすることが不可能になります。あなたがしたいことは、私が複製で説明するように戦略パターンを使用して取得したデータを送信することです。 –

答えて

0

はい、同じスレッド内の異なるメソッドで動作します。

あなたが別のスレッドでそれを必要とする場合は、スキャナへのアクセスを同期しない限り、あなたは別のスレッドで

を、それを使用することができないことを、各スレッド

関連する問題