2010-10-31 2 views
-3

Возможные Дублировать:
Java null pointer exceptions - don't understand why…Фиксирующие исключения нулевой указатель в Java (с ArrayList)

MOVIE.JAVA

package javaPractical.week3; 

import javax.swing.*; 

public class Movie { 
// private attributes 
private String title; 
private String movieURL; 
private String year; 
private String genre; 
private String actor; 

// constructor 
Movie(String t, String u, String y, String g, String a) { 
    this.title = t; 
    this.movieURL = u; 
    this.year = y; 
    this.genre = g; 
    this.actor = a; 

} 

// getters and setters 
public void setTitle(String t) { 
    this.title = t; 
} 

public String getTitle() { 
    return this.title; 
} 

public void set_url(String a) { 
    this.movieURL = a; 
} 

public String get_url() { 
    return this.movieURL; 
} 

public void setYear(String y) { 
    this.year = y; 
} 

public String getYear() { 
    return this.year; 
} 

public void setGenre(String g) { 
    this.genre = g; 
} 

public String getGenre() { 
    return this.genre; 
} 

public void setActor(String a) { 
    this.actor = a; 
} 

public String getActor() { 
    return this.actor; 
} 

// output movie details 
public String toString() { 
    return ("Title: " + this.title + "\nURL: " + this.movieURL + "\nYear: " 
      + this.year + "\nGenre: " + this.genre + "\nActor: " + this.actor); 
} 

public static void main(String[] args) { 
    // testing Movie class 
    Movie Movie1 = new Movie("Spiderman", "www.", "2002", "Action", 
      "Tobey M"); 

    JOptionPane.showMessageDialog(null, Movie1.toString()); 
    // testing MovieList class 

} 
} 

MOVIELIST.JAVA

package javaPractical.week3; 

import javax.swing.*; 
import java.util.ArrayList; 

public class MovieList1 { 

private static ArrayList<Movie> myFavouriteMovies = new ArrayList(); 
private static int NUM_OF_MOVIES = 10; 
private int numberOfMovies = 0; 
private int index = 0; 

public MovieList1() { 
    this.myFavouriteMovies = null; 
    this.numberOfMovies = 0; 
    this.index = 0; 
} 

public int getNumberOfMovies() { 
    return this.myFavouriteMovies.size(); 
} 

public boolean isEmpty() { 
    if (this.myFavouriteMovies.isEmpty()) { 
     return true; 

    } else 
     return false; 

} 

public static void main(String[] args) { 
    MovieList1 List = new MovieList1(); 
    String titleADD; 
    String movieURLADD; 
    String yearADD; 
    String genreADD; 
    String actorADD; 

    titleADD = JOptionPane.showInputDialog(null, "Enter title:"); 
    movieURLADD = JOptionPane.showInputDialog(null, "Enter URL:"); 
    yearADD = JOptionPane.showInputDialog(null, "Enter year:"); 
    genreADD = JOptionPane.showInputDialog(null, "Enter genre:"); 
    actorADD = JOptionPane.showInputDialog(null, "Enter actor:"); 

    Movie TempMovie = new Movie(titleADD, movieURLADD, yearADD, genreADD, 
      actorADD); 

    // crashes here 
    myFavouriteMovies.add(TempMovie); 

} 
} 
+1

А на ваш вопрос? См. Http://tinyurl.com/so-hints –

+0

У вас есть стек? Будет полезно опубликовать stacktrace, чтобы мы могли рассказать вам, как читать их, чтобы вы могли исправить эту проблему, если она возникнет снова. –

+0

@ user492837: Добавить StackTrace, plz. –

ответ

1

Конечно, он падает - вы установили его в null.

Почему вы не прислушались к совершенно хорошим советам, которые вы получили здесь?

Java null pointer exceptions - don't understand why

Вы тратите время каждого на тривиальный вопрос. Я голосую, чтобы закрыть.

Попробуйте - это все-таки отвратительным, но он работает:

package javaPractical.week3; 
import javax.swing.*; 
import java.util.ArrayList; 
import java.util.List; 

public class MovieList1 
{ 

    private static int NUM_OF_MOVIES = 10; 

    private List<Movie> myFavouriteMovies; 
    private int numberOfMovies = 0; 
    private int index = 0; 

    public MovieList1() 
    { 
     this.myFavouriteMovies = new ArrayList<Movie>(); 
     this.numberOfMovies = 0; 
     this.index = 0; 
    } 

    public int getNumberOfMovies() 
    { 
     return this.myFavouriteMovies.size(); 
    } 

    public boolean isEmpty() 
    { 
     return this.myFavouriteMovies.isEmpty(); 
    } 

    public void add(Movie movie) 
    { 
     this.myFavouriteMovies.add(movie); 
    } 

    @Override 
    public String toString() 
    { 
     return "MovieList1{" + 
       "myFavouriteMovies=" + myFavouriteMovies + 
       '}'; 
    } 

    public static void main(String[] args) 
    { 
     MovieList1 movieList = new MovieList1(); 
     String titleADD; 
     String movieURLADD; 
     String yearADD; 
     String genreADD; 
     String actorADD; 

     titleADD = JOptionPane.showInputDialog(null, "Enter title:"); 
     movieURLADD = JOptionPane.showInputDialog(null, "Enter URL:"); 
     yearADD = JOptionPane.showInputDialog(null, "Enter year:"); 
     genreADD = JOptionPane.showInputDialog(null, "Enter genre:"); 
     actorADD = JOptionPane.showInputDialog(null, "Enter actor:"); 

     Movie TempMovie = new Movie(titleADD, movieURLADD, yearADD, genreADD, 
            actorADD); 

     // crashes here 
     movieList.add(TempMovie); 
     System.out.println(movieList); 

    } 
} 

class Movie 
{ 
    private String title; 
    private String url; 
    private String year; 
    private String genre; 
    private String actor; 

    Movie(String title, String url, String year, String genre, String actor) 
    { 
     this.title = title; 
     this.url = url; 
     this.year = year; 
     this.genre = genre; 
     this.actor = actor; 
    } 

    @Override 
    public String toString() 
    { 
     return "Movie{" + 
       "title='" + title + '\'' + 
       ", url='" + url + '\'' + 
       ", year='" + year + '\'' + 
       ", genre='" + genre + '\'' + 
       ", actor='" + actor + '\'' + 
       '}'; 
    } 
} 
+0

Большое спасибо duffymo (и другие), исправил его, и я понимаю, почему. – user492837

2

Вы определили статический атрибут private static ArrayList<Movie> myFavouriteMovies = new ArrayList();

Но в конструкторе вы назначая нуль. После этого вы вызываете такие звонки, как myFavouriteMovies.size(), который вызывает NullPointerException

public MovieList1() { 
    this.myFavouriteMovies = null; 
    this.numberOfMovies = 0; 
    this.index = 0; 
} 
+0

+1, Хороший улов, у тебя были лучшие глаза, чем у меня. –

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