def index
render template: 'posts/show'
end
问题: - 在方法()之外创建Scanner类对象时出现编译错误: - 无法从静态上下文引用非静态变量扫描但是当我在方法()中定义它时它没有错误工作为什么?
问题: - 如何创建Scanner类Object,每个类都可以使用在程序中某个位置定义的单个对象。这可能吗?
答案 0 :(得分:0)
对于第一个问题,您尝试从静态方法访问非静态变量。可以在没有类实例的情况下调用静态方法。但是,每个类的实例都会创建非静态变量。
对于第二个问题,您可以将扫描仪设置为静态,如果您希望从多个类中使用它,则将其公开。
class Customer
{
static Scanner scan = new Scanner(System.in);
public static void method()
{
System.out.print("Name : ");
String name = scan.nextLine();
}
}
答案 1 :(得分:0)
如果您想从静态方法访问Scanner
,则必须定义Scanner
本身static
。如果您希望每个人都可以访问Customer类上的Scanner
,请将其定义为public static
。
您可能需要阅读OOP principles和static keyword in Java。
答案 2 :(得分:0)
请查看以下可能的2种解决方案
解决方案1
Scanner scan = new Scanner(System.in);
public void method()
{
System.out.print("Name : ");
String name = scan.nextLine();
}
解决方案2
static Scanner scan = new Scanner(System.in);
public static void method()
{
System.out.print("Name : ");
String name = scan.nextLine();
}