2016-12-04 2 views
-1

私は現在、3つのメインクラスを持っています。オブジェクトとそのゲッターとセッターが含まれているテレビシリーズクラス:オブジェクト内に含まれている配列リストにデータを追加する

public class SeriesLibrary { 
private ArrayList<TVSeries> tvSeries = new ArrayList<TVSeries>(); 

public SeriesLibrary(ArrayList<TVSeries> tvSeries) { 
    this.tvSeries = tvSeries; 
} 

public ArrayList<TVSeries> getTvSeries() { 
    return tvSeries; 
} 

public void setTvSeries(ArrayList<TVSeries> tvSeries) { 
    this.tvSeries = tvSeries; 
} 

public TVSeries addTVSeries(Scanner sc) { 
    System.out.println("Add a new TV Series"); 
    System.out.println("------------------------------"); 
    System.out.print("Please enter the TV series' Title: "); 
    String title = sc.nextLine(); 
    System.out.print("Please enter the TV series' Genre: "); 
    String strGenre = sc.nextLine(); 
    System.out.print("Please enter the TV series' Age Rating: "); 
    String strRating = sc.nextLine(); 
    System.out.print("Please enter the number of Episodes in the TV Series: "); 
    int numOfEps = sc.nextInt(); 
    sc.nextLine(); 
    System.out.println(title + " will be set up with no actors or ratings. These can be added later."); 
    ArrayList<String> emptyActors = new ArrayList<String>(); 
    ArrayList<Integer> emptyReviews = new ArrayList<Integer>(); 
    Genre genre = Genre.valueOf(strGenre); 
    Rating rating = Rating.valueOf(strRating); 
    TVSeries newSeries = new TVSeries(title, genre, rating, numOfEps, emptyActors, emptyReviews); 
    return newSeries; 
} 

とテスタクラス:ちょうどArrayListのテレビシリーズのオブジェクトで構成されたオブジェクトである

public class TVSeries { 
private String title; 
private Genre genre; 
private Rating rating; 
private int numOfEps; 
private ArrayList<String> actor = new ArrayList<String>(); 
private ArrayList<Integer> listOfReviews = new ArrayList<Integer>(); 

public TVSeries(String title, Genre genre, Rating rating, int numOfEps, ArrayList<String> actor, ArrayList<Integer> listOfReviews) { 
    this.title = title; 
    this.genre = genre; 
    this.rating = rating; 
    this.numOfEps = numOfEps; 
    this.actor = actor; 
    this.listOfReviews = listOfReviews; 

シリーズライブラリクラス。私はこのデータをメニューに追加するコードを入れていますが、実際にどのように起動するのか分かりません。

私は、ユーザーが新しいテレビシリーズを作成するための情報を追加できるメソッドを持っています。このメソッドは、新しく作成されたオブジェクトを返します。

テスター内でどのようなコードを使用すれば、この新しい値をオブジェクト内の配列リストに追加することができますか(たとえばseriesLibrary)。私は新しいメソッドを作成する必要がありますか?私は現在の方法を変更しますか?

+0

に追加whithout新しいTVSeriesオブジェクトを作成します。

public TVSeries addTVSeriesFromInput(Scanner sc) { System.out.println("Add a new TV Series"); System.out.println("------------------------------"); System.out.print("Please enter the TV series' Title: "); String title = sc.nextLine(); System.out.print("Please enter the TV series' Genre: "); String strGenre = sc.nextLine(); System.out.print("Please enter the TV series' Age Rating: "); String strRating = sc.nextLine(); System.out.print("Please enter the number of Episodes in the TV Series: "); int numOfEps = sc.nextInt(); sc.nextLine(); System.out.println(title + " will be set up with no actors or ratings. These can be added later."); return addTVSeries(title, strGentre, strRating, numOfEps); } public TVSeries addTVSeries(String title, String strGenre, String strRating, int numOfEps){ ArrayList<String> emptyActors = new ArrayList<String>(); ArrayList<Integer> emptyReviews = new ArrayList<Integer>(); Genre genre = Genre.valueOf(strGenre); Rating rating = Rating.valueOf(strRating); TVSeries newSeries = new TVSeries(title, genre, rating, numOfEps, emptyActors, emptyReviews); return newSeries; } 

PS:あなたのケースでは、このようなものかもしれません以前のコメントが削除された理由、私の現在のコードを含めるために投稿を編集した理由 – AceVenturos

+0

下記の回答を確認しましたか?あなたが答えの1つに満足していれば、それを解決策としてマークしてください。それ以外の場合はコメントし、何が間違っているか –

答えて

0

私は私が正しくあなたの質問を理解しますが場合は、次の操作を行うことができわからない:

ArrayList<TVSeries> tvSeriesLibrary = seriesLibrary.getTvSeries(); 
tvSeriesLibrary.add(newSeriesToAdd); 
seriesLibrary.setTvSeries(tvSeriesLibrary); 

これはseriesLibraryはあなたの既に初期化SeriesLibrary対象とnewSeriesToAddであると仮定されているオブジェクトは、新しいTVSeriesオブジェクトを作成から返されます。

0

あなたのメソッドは引数としてScannerを要求するので、あなたのメソッドで求めているすべての情報をタイプしたファイル(txtファイル)を作成し、Scannerを作成してファイルを読み込みその方法にはScannerです。それはあなたの特定の問題に対する解決策です。

私はあなたの方法を変更することをお勧めします。 I/Oチャンネル(ファイル、ストリーム、stdin、...)からのデータの読み取り/スキャンが必要なメソッドのテスト容易性のため、私はいつも私のプログラムのスキャン/読み取り部分と何らかの種類のコードを分ける習慣があります論理演算。だから私のアドバイスは、あなたが求めているデータを読み込み/スキャンし、そのデータを処理するメソッドにすべてのデータを渡す別々の関数を作成することです(あなたの場合、そのデータに基づいて正しい値を持つTVSeriesを作成します)。私はあなたのメソッドがaddTVSeriesと呼ばれていること、それは非常に奇妙見つけるが、それは唯一のいくつかのためにリストtvSeries

関連する問題