【发布时间】:2020-06-07 09:50:58
【问题描述】:
我已经声明了一个 Scanner 对象,我想要一个设置 Scanner 名称的方法。我想到了这样的事情:
public static void ScannerSetUp(String ScannerName) {
Scanner ScannerName = new Scanner(System.in);
}
但我收到一条消息说变量已在范围中定义。有人知道怎么做吗?
谢谢。
【问题讨论】:
-
您正在使用相同的参数名称“ScannerName”作为方法主体中的本地变量。因此,Java 编译器无法将这两个变量名彼此分开。因此,您应该重命名这些变量名之一
-
但这不会设置我可以用来调用扫描仪的变量名称,并且该方法将无用。
-
在我看来,您尝试做的事情完全没有意义。您命名一个变量,以便该名称是相关的,并可能在阅读代码时为您自己和其他人解释该变量的使用。在运行时为变量指定特定名称是没有意义的,对任何人都没有用。
-
根本没有办法命名一个对象,更不用说你需要了。您在寻找地图吗?
-
显然您想将对象的名称设置为在运行时确定的名称。但是,在这种情况下,没有编译时元素可以使用该名称。因此,如果您设法在运行时为该对象命名,那么该名称将用于什么?
标签: java string parameters scope java.util.scanner