2016-12-04 1 views
-1

현재 3 개의 메인 클래스가 있습니다. 객체를 포함하고 TV 시리즈 클래스의 getter 및 setter :오브젝트 내부에 포함 된 배열리스트에 데이터 추가

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; 

단지 ArrayList의 TV 시리즈 객체의 구성 목적은 일련의 라이브러리 클래스 :

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; 
} 

그리고 테스터 클래스 . 이 데이터를 메뉴에 추가하는 코드를 넣고 있지만 실제로 시작하는 방법을 모르겠습니다.

사용자가 새로운 TV 시리즈를 만들기 위해 정보를 추가 할 수있는 메소드가 시리즈 라이브러리 클래스 내에 있으며 메소드가 새로 만든 객체를 반환합니다.

테스터 내에서 어떤 코드를 사용하여 객체 내의 배열 목록에이 새로운 값을 추가 할 수 있습니다 (예 : 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

아래 답변을 확인하셨습니까? 답변 중 하나에 만족하시는 경우 해결책으로 표시하십시오. 그 밖의 의견을 말하고 무엇이 잘못되었는지 말하십시오! –

답변

0

는 내가 제대로 질문을 이해한다면 확실하지 오전하지만 당신은 다음을 수행 할 수 :

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

seriesLibrary을 가정한다 이미 SeriesLibrary 객체와 newSeriesToAdd 개체가 새로운 TVSeries 객체를 생성에서 반환 초기화하여됩니다 .

0

메서드가 Scanner을 인수로 요청하면 메서드에서 묻는 모든 정보를 입력 한 파일 (txt-file)을 만들고 파일을 읽은 후 Scanner을 만든 다음 그 방법에 Scanner. 그것은 당신의 특정 문제에 대한 해결책입니다.

당신의 방법을 바꾸라고 조언합니다. I/O 채널 (파일, 스트림, 표준 입력 ...)에서 데이터를 읽거나 스캔해야하는 메소드의 테스트 가능성이 낮기 때문에 필자는 항상 프로그램/코드 읽기 부분을 분리하는 습관을 가지고 있습니다. 논리 연산. 그래서 당신이 요구하는 데이터를 읽고 스캔하는 별도의 함수를 작성한 다음이 데이터를 처리 할 메소드에이 모든 데이터를 전달합니다 (귀하의 경우 해당 데이터를 기반으로 올바른 값으로 TVSeries을 작성하십시오.). 나는 당신의 방법을 addTVSeries라는 것을 아주 이상한 찾을 수 있지만, 일부의 경우 목록 tvSeries

관련 문제