我有一个名为 Review 的实例类,它接受 String、String、int、String、boolean。
每次用户输入所有 5 个值时,它都会添加到 main 中的 arrayList。我的问题是,当用户更新值时,它也会更改 arraylist 中的值,最终,arraylist 中的所有 Review 都相同。我在 Review 类中没有任何静态内容。我该如何解决这个问题?
public class Review implements Comparable<Review>{
private String reviewer;
private String restaurant;
private int rating;
private String comment;
private boolean recommended;
public Review( String revName, String restName, int rating, String comment, boolean recommended) {
reviewer = revName;
restaurant = restName;
this.rating = rating;
this.comment = comment;
this.recommended = recommended;
}
这是带有构造函数的基本类,它们都有自己的 getter 和 setter。
private ArrayList<Review> reviews = new ArrayList<Review>();
Review review = new Review(revName, restName, rating, comment, recommended);
public void setReviews(Review review){
reviews.add(review);
}
public ArrayList<Review> getReviews(){
return reviews;
}
这是另一个用于导入和导出的类。(从现在开始我将称之为“阅读器”类)
主要我只是使用
ArrayList<Review> reviews = reader.getReviews();
每次有更新时将它们设置为彼此相等
reader.setReviews(review);
这是在用户输入所有 5 次后使用的。用户对 Review 类中的各个变量使用 setter 来设置值。