Java Arraylist-“找不到符号错误”
嗨,我正在尝试制作一个电影数据库。已决定使用arraylist,因为我们无法使用数组。它将有4个类,电影,电影数据库,播放列表和界面。我希望将Movie类中的Movie对象添加到Moviedatabase中的Arraylist中,然后能够从接口中添加和删除它们。我收到很多错误,说它找不到变量。我使用了另一个类似的问题作为模板,不明白为什么它不能编译。 这是我的电影课Java Arraylist-“找不到符号错误”,java,Java,嗨,我正在尝试制作一个电影数据库。已决定使用arraylist,因为我们无法使用数组。它将有4个类,电影,电影数据库,播放列表和界面。我希望将Movie类中的Movie对象添加到Moviedatabase中的Arraylist中,然后能够从接口中添加和删除它们。我收到很多错误,说它找不到变量。我使用了另一个类似的问题作为模板,不明白为什么它不能编译。 这是我的电影课 public class Movie { private String name, director; pri
public class Movie
{
private String name, director;
private int fileSize, duration;
public Movie()
{
name = "";
director = "";
fileSize = 0;
duration = 0;
}
Movie(String newName, String newDirector, int newfileSize, int newDuration)
{
this.name = newName;
this.director = newDirector;
this.fileSize = newfileSize;
this.duration = newDuration;
}
public void setName(String newName)
{
name = newName;
}
public void setDirector(String newDirector)
{
director = newDirector;
}
public void setfileSize(int newfileSize)
{
fileSize = newfileSize;
}
public void setDuration(int newDuration)
{
duration = newDuration;
}
public String getName()
{
return name;
}
public String getDirector()
{
return director;
}
public int getfileSize()
{
return fileSize;
}
public int getDuration()
{
return duration;
}
}
还有MovieDatabase类
import java.util.*;
public class MovieDatabase
{ //start class
private ArrayList<Movie> list = new ArrayList<Movie>(4); //creates ArrayList
Movie newMovie = new Movie(newName, newDirector, newfileSize, newDuration); //instantiates Movie class
public void add(Movie newMovie) //method adds a new Movie object to the array list
{ //start add
list.add(newMovie);
} //end add
public void add(String newName, String newDirector, int newfileSize, int newDuration) //accepts parameters from main method to add to new object
{ //start add
newName = name;
newDirector = director;
newfileSize = fileSize;
newDuration = duration;
newMovie.setName(newName);
newMovie.setDirector(newDirector);
newMovie.setfileSize(newfileSize);
newMovie.setDuration(newDuration);
list.add(newName,newDirector,newfileSize,newDuration);
} //end add
}
//end class
Movie newMovie=newmovienewname、newDirector、newfileSize、newDuration
您需要定义newName、newDirector、newfileSize和newDuration,因为这些变量当前不存在于MovieDatabase中。您不需要将数组列表的长度指定为4。ArrayList的目的是使列表属性具有类似于数组的性能,如按名称或位置添加和删除项、大小检查等 此外,addMovie newMvoie方法将电影添加到类变量列表中,但您尝试在类内创建列表。实际上,您应该声明一个没有新构造函数的列表成员变量
public class MovieDataBase {
private ArrayList<Movie> list;
}
不能只在方法或构造函数之外的类中编写代码。您需要创建一个MovieDatabase构造函数,并且可能需要另一个类来驱动应用程序 以下代码使用的变量未在MovieDatabase类中声明 你的意思可能是:
public void add(String newName, String newDirector, int newfileSize, int newDuration) //accepts parameters from main method to add to new object
{
list.add(new Movie(newName,newDirector,newfileSize,newDuration));
}
编辑您的问题并添加一些错误消息。和gibt:更频繁地运行编译器。不要等到写了50行代码才运行@KenWhite的compilerPossible duplicate它是怎么一个副本的?因为它是几十个未定义引用/未解析外部符号错误帖子中的一个的副本,我们不可能为地球上的某个人构建的每一个项目都有一个,在不同的类中遇到相同的问题。在C中,如何添加整数变量a和b?当变量的名称不同时不会改变,所以在C中,如何添加整数变量C和d?这是一个复制品。在这种情况下也是如此。但是它不应该从电影类中获取变量吗?@Jack不,你已经将它们设置为私有的,而且它不像电影数据库那样扩展了电影类。我建议您学习初始化对象和设置它们的变量。
public void add(String newName, String newDirector, int newfileSize, int newDuration) //accepts parameters from main method to add to new object
{ //start add
newName = name;
newDirector = director;
newfileSize = fileSize;
newDuration = duration;
newMovie.setName(newName);
newMovie.setDirector(newDirector);
newMovie.setfileSize(newfileSize);
newMovie.setDuration(newDuration);
list.add(newName,newDirector,newfileSize,newDuration);
}
public void add(String newName, String newDirector, int newfileSize, int newDuration) //accepts parameters from main method to add to new object
{
list.add(new Movie(newName,newDirector,newfileSize,newDuration));
}