所以本质上这就是我想做的,
do{
Object name = new Object();*Create new object*
Object.method*run created object through a method*
Scanner keyboard = new Scanner(System.in);
System.out.println("Do you wish to continue entering data");
String answer = keyboard.nextLine();
} while (answer.equalsIgnoreCase("Yes"))
我需要创建数组才能完成这项工作吗?如果是这样,那将如何运作?
最佳答案
视情况而定。如果您的对象具有状态(例如代表数据库中的一行),则必须为每次迭代创建它。但是,如果您需要做的只是调用对象中的方法(即,如果它是无状态的(没有非静态和非最终类变量或者是不可变的)),那么您应该只创建一个实例,然后调用该方法在每次迭代中。 Scanner 对象就是一个例子。您所做的就是调用其中的方法,因此您不必每次都创建一个新对象,而是可以在调用该方法之前创建它,或者作为实例(类级别,最好是私有(private))字段,以便可以重复使用它在所有方法中。以下是我重写代码的方法:
public class MyClass {
private final Scanner scanner = new Scanner(System.in);
public void doSomething() {
Object object = new Object();
do {
// call your method here
// object.yourMethod();
System.out.println("Do you wish to continue entering data?");
} while (scanner.nextLine().equalsIgnoreCase("Yes"));
}
}
另外,如果您想存储与您创建的每个实例关联的状态,那么您可以这样做:
public class MyClass {
private final Scanner scanner = new Scanner(System.in);
public void doSomething() {
List<Object> data = new ArrayList<Object>();
Object object;
do {
// call your method here
object = new Object();
// object.yourMethod();
data.add(object);
System.out.println("Do you wish to continue entering data?");
} while (scanner.nextLine().equalsIgnoreCase("Yes"));
for(Object d : data) {
// do something with the info you captured
}
}
}
关于java - 如何使用循环来创建新对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393009/