Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用扫描仪进行多种不同的方法_Java - Fatal编程技术网

Java 使用扫描仪进行多种不同的方法

Java 使用扫描仪进行多种不同的方法,java,Java,我是Java新手,所以我正在练习一些简单的代码。我想创建一些方法并对所有方法使用Scanner,但我不想每次创建其他新方法时都声明Scanner 这是我的代码。这是正确的吗?有更好的方法吗 import java.util.*; public class TripPlanner { public static final Scanner input = new Scanner(System.in); public static void main(String[] args

我是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");
    }
}

是的,这将适用于同一线程中的不同方法

但是,需要注意的是,除非同步对扫描仪的访问,否则不能在不同的线程中使用它


如果您在不同的线程中需要它,那么为每个线程创建一个

您永远不想将这样的有状态资源(或数据库连接)传递给多个方法,这会使您的整个应用程序无法调试交织的状态机。您要做的是使用策略模式(如我在副本中解释的)分派所获取的数据。