2010-01-13 2 views
1

Я сделал викторину, похожую на ту, что в iPod, все работает идеально, пока моя программа не вызовет класс MP3 (http://pastebin.com/d52fe24ce), чтобы остановить функцию close(). Проблема в моем случае заключается в том, что MP3 не «создается» при его вызове. Я не уверен, но я думаю, что это связано с тем, что созданный мной игрок не является нулевым (см. Main.java http://pastebin.com/d32ef2c06 вокруг строки 261), хотя на самом деле нет «экземпляра» игрока ... Кто-нибудь знает, как я могу сделать игрок закрывает поток?Проблема с несколькими экземплярами функции

+0

Помимо диких догадок и неопределенных обобщений, никто не сможет многое сделать для вас здесь, если вы не разместите какой-либо код. Кроме того, если вы подозреваете, что созданный вами объект может быть нулевым, это довольно легко проверить, верно? –

+1

+1 для использования pastebin вместо сброса всего кода здесь –

+0

эй, это блок внутри игрока! = Null выполнен или нет? было бы полезно знать это. – moritz

ответ

1

В строке 283, вы говорите:

MP3 player = new MP3... 

Здесь можно создать новую локальную переменную. Удалите первый "MP3", так что новый игрок получает назначение в поле player:

player = new MP3... 
1

линии 283:

MP3 player = new MP3(((SongQuestion)question).getSongPath()); 

должно быть:

player = new MP3(((SongQuestion)question).getSongPath()); 

Это использует уровень экземпляра MP3 игрок. Теперь вы создаете новый локальныйMP3 player, который маскирует экземпляр уровня один.

+0

Это то, что я подозревал, но не знал, как на самом деле указать на проблему! Спасибо, я попробую! – Philip

Смежные вопросы