私はユーザーからの入力を受け取り、それが正しいことを確認するためのメソッドを作成しています。正しい場合は、メソッドを呼び出してユーザー入力を入力します。しかし何らかの理由で、メソッド呼び出しが機能していません。それはエラーを発生させません、それは単にそれをしません。私はコードの最後にprintステートメントを置いて実際にそこに到達していることを確認しましたが、何らかの理由でそれが想定されているようにメソッドを呼び出さないだけです。他のメソッドは、それ自身を呼び出してパラメータを使用して文字列を入力すると正常に動作します。このメソッド呼び出しはなぜ機能しませんか?
public void getGetScheduledShowByFilmInput()////new - omar////
{
BufferedReader reader;
reader = new BufferedReader(new InputStreamReader(System.in));
String filmInput;
filmInput = "";
boolean foundFilm;
foundFilm = false;
System.out.println("Here is a list of films that are currently showing:");
for(Film film : films){
System.out.println(film.getFilmName());
}
System.out.println("");
System.out.println("Please type the film name that you wish to view the corresponding shows for and press enter.");
System.out.println("Type 'exit' and press enter to exit this process.");
while(foundFilm == false){
try{
filmInput = reader.readLine();
}
catch (IOException e){
System.out.println("Error");
}
//If user enters "exit" then return.
if(filmInput.equals("exit")){
return;
}
//Check to see if the film name input by the user corresponds to any film showing.
for(Film film : films){
if(film.getFilmName() == filmInput){
foundFilm = true;
break;
}
}
if(foundFilm = true){
System.out.println("Film found.");
}
else{
System.out.println("The film name you entered has not been recognised. Please try again.");
}
}
//Call the function and input the film name input by the user.
getScheduledShowsByFilm(filmInput); ////This is the code that seems to be the problem.
System.out.println("reached bottom");
}
及び第二の方法は次のとおりです:
コードがある
public void getScheduledShowsByFilm(String inputFilmName)
{
ArrayList<Show> scheduledShows;
scheduledShows = new ArrayList<Show>();
for(Film film : films){
if(inputFilmName == film.getFilmName()){
for(Schedule schedule : schedules){
scheduledShows.add(schedule.getShowsOfFilm(film));
if(scheduledShows.get(scheduledShows.size() - 1) == null){
scheduledShows.remove(scheduledShows.size() - 1);
}
}
}
}
for(Show show : scheduledShows){
System.out.println("**********************************");
show.getShowDetails();
System.out.println("**********************************");
}
}
私は自分自身でそれを呼び出すと、しかし、手動でパラメータを入力したときに第2の方法は完璧に動作します。
これはおそらく私が理解していない非常に単純なものです!ハハ、あなたの助けをありがとう:)あなたはいつもそれに忠実割り当てるため
をあなたはそれが呼び出されていないことを知っている方法を教えてください。私が見ることのできるところでは、BufferedReaderを宣言して初期化しますが、何も読み込まない(そこにコードを投稿していない場合を除き)。それは届いているのですか? – orangething
あなたは 'getScheduledShowsByFilm'を投稿できますか? –
あなたの編集に気づいたばかりです – orangething