我有课:
public class Provider {
public static int getNumberofObjects() {
Scanner in = new Scanner(System.in);
System.out.print("Input Number of Objects: ");
int numberOfObjects = in.nextInt();
return numberOfObjects;
}}
我如何传递 numberOfObjects 变量,而不必在每次我需要此变量时提示用户再次输入新的对象数量?
我正在做的是:
public class B {
Provider provider = new Provider();
int numberOfObjects= Provider.getNumberofObjects(); }
但由于我在此类的多个方法中使用了 numberOfobjects,因此每次都会提示我输入新值。
最佳答案
一种方法是将结果缓存在提供程序中,并在所有后续调用中返回它,如下所示:
public class Provider {
boolean gotNumber = false;
int theNumber;
public int getNumberofObjects() {
if (!gotNumber) {
Scanner in = new Scanner(System.in);
System.out.print("Input Number of Objects: ");
theNumber = in.nextInt();
gotNumber = true;
}
return theNumber;
}
}
此实现仅在第一次调用 getNumberofObjects()
方法时向用户请求数字;所有后续调用都使用在第一次调用中读取的 theNumber
。
请注意,我将 getNumberofObjects()
方法设为非静态,因此您需要将 new Provider()
传递给需要该数字的类。
关于java - 如何在不多次执行该方法的情况下将返回值传递给其他类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984396/