Java 将对象(字符串、字符串、int、int)添加到ArrayList
我上了这两门课。下面的一个应该有一个电影的ArrayListJava 将对象(字符串、字符串、int、int)添加到ArrayList,java,android,string,arraylist,Java,Android,String,Arraylist,我上了这两门课。下面的一个应该有一个电影的ArrayList import java.util.ArrayList ; import android.app.Activity ; import android.os.Bundle ; public class UIDActivity extends Activity { private static ArrayList<Movie> movieList; public void onCreate(Bundle s
import java.util.ArrayList ;
import android.app.Activity ;
import android.os.Bundle ;
public class UIDActivity extends Activity {
private static ArrayList<Movie> movieList;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public static void main(String String, int
int args[]
) {
movieList = new ArrayList<Movie>();
movie1 = new Movie("Fight Club", "David Fincher", "1999", "3");
movieList.add(movie1);
}
public String getTitle() {
return title;
}
public String getDirector() {
return director;
}
public int getYear() {
return year;
}
public int getRating() {
return rating;
}
}
不知什么原因,我想不出我一直忘记的是什么简单的事情?!?!
Eclipse想将我的公共电影更改为四倍字符串。。。那里没有错误,但rest也不起作用。据我所知,如果创建静态变量,必须在该点对其进行初始化 试试这个:
private static ArrayList<Movie> movieList = new ArrayList<Movie>();
private static ArrayList movieList=new ArrayList();
顺便说一句,UIDActivity的getters不应该被移动到电影类中,或者包含你想要的电影的索引吗?据我所知,如果你创建一个静态变量,你必须在那一点上初始化它 试试这个:
private static ArrayList<Movie> movieList = new ArrayList<Movie>();
private static ArrayList movieList=new ArrayList();
顺便说一句,UIDActivity的getter不应该被移动到电影类中,或者包含你想要的电影的索引吗?问题是,你试图使用一个构造函数,它包含两个
字符串和两个整数,但却传递了构造函数4个字符串
movie类中构造函数的方法签名为
public Movie(String deTitle, String deDirector, int hetYear, int deRating)
您尝试调用构造函数的方式不正确
这:
应该是:
movie1 = new Movie("Fight Club", "David Fincher", 1999, 3);
问题是您试图使用一个构造函数,该构造函数接受两个字符串和两个整数,但将构造函数传递为4个字符串
movie类中构造函数的方法签名为
public Movie(String deTitle, String deDirector, int hetYear, int deRating)
您尝试调用构造函数的方式不正确
这:
应该是:
movie1 = new Movie("Fight Club", "David Fincher", 1999, 3);
您只需要在电影类中有setter/getter,此外,还要确保类变量声明为私有的,并且只能通过适当的getter访问
公共类电影实现了可序列化{
private String title;
private String director;
private int year;
private int rating;
public Movie(String deTitle, String deDirector, int hetYear, int deRating) {
title = deTitle;
director = deDirector;
year = hetYear;
rating = deRating;
}
public void setDirector(String director) {
this.director = director;
}
public String getDirector() {
return director;
}
...
}
另外,我将使用list接口定义列表,并将实例化为ArrayList。您需要在Movie类中只使用setter/getter,此外,还要确保类变量声明为私有,并且只能通过适当的getter访问
公共类电影实现了可序列化{
private String title;
private String director;
private int year;
private int rating;
public Movie(String deTitle, String deDirector, int hetYear, int deRating) {
title = deTitle;
director = deDirector;
year = hetYear;
rating = deRating;
}
public void setDirector(String director) {
this.director = director;
}
public String getDirector() {
return director;
}
...
}
另外,我将使用list接口定义列表,并将实例化为ArrayList。您的电影构造函数需要两个String对象和两个int-
public Movie(String deTitle, String deDirector, int hetYear, int deRating)
但是您正在传递四个字符串对象-
movie1 = new Movie("Fight Club", "David Fincher", "1999", "3");
为什么要尝试将四个字符串值传递给Movie构造函数,而不是构造函数所期望的两个字符串和两个int?通过构造器,您应该按照以下方式创建电影对象-
movie1 = new Movie("Fight Club", "David Fincher", 1999, 3);
您的电影构造函数需要两个字符串对象和两个int-
public Movie(String deTitle, String deDirector, int hetYear, int deRating)
但是您正在传递四个字符串对象-
movie1 = new Movie("Fight Club", "David Fincher", "1999", "3");
为什么要尝试将四个字符串值传递给Movie构造函数,而不是构造函数所期望的两个字符串和两个int?通过构造器,您应该按照以下方式创建电影对象-
movie1 = new Movie("Fight Club", "David Fincher", 1999, 3);
在重新格式化代码时,我注意到您的主声明是publicstaticvoidmain(stringstring,int-int-args[])
,这是一个输入错误(2 int+带有额外int-args[]参数的奇怪签名)?和字符串?该代码无法编译。你能发布实际的代码吗?请发布准确的错误消息猜错了,但尝试了所有可能的组合,哈哈。我的电影课按原样整理好了。。至少我希望那是完美的。。但是Eclipse在我想用ArrayList做的所有事情上不断地给出各种各样的错误。当我处理了那里的错误后,.add突然不起作用了:(JUG已经回答了你的问题。@mattb第二个int给出了标记“int”的语法错误,VariableDeclaratorId无效,我的getTitle gives无法重写Activity中的最终方法,而我的其他Getter则可以接受返回值:无法解析为变量。我知道我忽略了一些内容,但几天前做了同样的事情,工作得很好。老实说,这应该不难。在重新格式化代码我注意到您的主声明是publicstaticvoidmain(stringstring,int-args[])
,这是一个输入错误(2 int+带有额外int-args[]参数的奇怪签名)和String-String
?该代码无法编译。你能发布实际代码吗。请发布准确的错误消息猜错了,但在那里尝试了所有可能的组合lol。让我的电影类按原样整理出来。至少我希望这是完美的。但是Eclipse一直在给出我想要处理的所有类型的错误ArrayList。当我处理了那里的错误后,.add突然不起作用了:(JUG已经回答了你的问题。@mattb第二个int给出了标记“int”的语法错误,VariableDeclaratorId无效,我的getTitle gives无法重写Activity中的最终方法,而我的其他Getter则可以接受返回值:无法解析为变量。我知道我忽略了一些内容,但几天前做了同样的事情,工作得很好。老实说,这应该不难。嗯?可以使用静态初始值设定项块而不是在声明中初始化它们。嗯…我不知道。很高兴知道。嗯?你可以使用静态初始值设定项块而不是在声明中初始化它们。嗯…我不知道。很高兴知道。谢谢你。我有时可能是个白痴。但我仍然会在公开声明中出错tic void main和我的getters谢谢你我可以时不时成为一个白痴但我仍然在我的公共静态void main和getters中出错,现在我把getters放回电影课。现在我的私人静态ArrayList movielist出现了问题;;突然变红了:s就像;behind(R.layout.main)…我现在明白为什么我不能