String、String、int、String、boolean を受け取る Review というインスタンス クラスがあります。
ユーザーがこれらの 5 つすべてに値を入力するたびに、メインの arrayList に追加されます。ここでの私の問題は、ユーザーが値を更新すると、配列リスト内の値も変更され、最終的に配列リスト内のすべてのレビューが同じになることです。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;
}
これはコンストラクター付きの基本クラスで、すべて独自のゲッターとセッターを持っています。
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 クラスの個々の変数に対してセッターを使用して値を設定します。