java - Agecheck 方法中调用名称错误

标签 java methods

import java.util.*;

public class newclass {
public static String name;     

static Scanner input = new Scanner(System.in);
public static void main(String[] args){

    newclass picname = new newclass();
    picname.namechecker();
    picname.agechecker();

}
public void namechecker(){
System.out.println("Please enter your name new user");
String name = input.nextLine();
System.out.println("Hello " + name + "!");

}
public void agechecker(){
System.out.println("What is your age " + name); 
int age = input.nextInt();
System.out.println("You're " + age + " years old");
}

}

出于某种原因,每当我输入我的名字时。 Java 不会在agechecker() 方法中调用它。我不知道为什么它不会,因为我将它用作全局变量。有人可以向我解释一下吗?先感谢您。

最佳答案

问题:

您在namechecker()中输入名称并将其分配给

String name = input.nextLine();

并且您希望它也被设置在名为 name 的静态字段中

System.out.println("What is your age " + name); 

所以它会是null

解决方案:

脏:也为全局变量分配名称
更好:创建一个名为 Person 的类并拥有其 Object

关于java - Agecheck 方法中调用名称错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24317748/

相关文章:

java - ActiveMQ KahaDB 总是锁定和等待

java - Kafka 管道示例不会将所有记录从主题 a 传送到主题 b

Objective-c 看不到 Swift 类的方法

methods - 定义元组方法

java - 从单独的列表中获取数字

java - 奇怪的 HtmlUnit 行为(错误?)

python - capitalize() 方法如何在 python/django 中工作?

John Resig 的 Javascript Array.remove() - 为什么它在 for-in 语句中枚举?

javascript - 通过对象方法中的外部方法设置变量

java - 如何在 Swing 中获取 JFrame