에 따라 다릅니다. 객체에 상태 (예 : 데이터베이스의 행을 나타냄)가 있으면 각 반복마다 객체를 만들어야합니다. 그러나 당신이해야 할 일은 객체에서 메소드를 호출하는 것입니다 (즉, 상태가없고 (비 정적 및 비 최종 클래스 변수가 없거나 불변 인 경우)), 인스턴스 하나를 작성하고 메소드를 호출해야합니다 각 반복에서. 그 예가 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
}
}
}
당신은 모든 객체를 생성하고 싶습니까, 아니면 마지막 객체만을 유지하고 싶습니까? –