Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义链表-无法将对象类强制转换为对象_Java_Object_Casting_Superclass - Fatal编程技术网

Java 自定义链表-无法将对象类强制转换为对象

Java 自定义链表-无法将对象类强制转换为对象,java,object,casting,superclass,Java,Object,Casting,Superclass,对于这个项目,我不允许使用泛型类。我试着把我所有的课程复制到另一台朋友的电脑上,他也犯了同样的错误 我不能打这样的电话 int counter = ((Movie) movieList.get(movListIndex)).getShowList().size(); 其中getShowList()是my Movie类中返回LinkedList的方法 Eclipse说: 无法从对象到电影进行分级 另外 movieList.add(objMovie, counter); 其中objMovie是电

对于这个项目,我不允许使用泛型类。我试着把我所有的课程复制到另一台朋友的电脑上,他也犯了同样的错误

我不能打这样的电话

int counter = ((Movie) movieList.get(movListIndex)).getShowList().size();
其中getShowList()是my Movie类中返回LinkedList的方法

Eclipse说:

无法从对象到电影进行分级

另外

movieList.add(objMovie, counter);
其中objMovie是电影对象

Eclipse说:

类型LinkedList中的方法add(Object,int)不适用于参数(Movie,int)

-建议在电影中改变添加方式

我需要能够以一种方式保留LinkedList和Node,使它们能够接收任何对象,而当我创建一个电影类时,我无法将其转换为对象

链表类 如果需要电影课
公共类电影{
private int filmNumber;//电影ID
私有字符串filmTitle;//电影的标题
private int filmTime;//电影运行时
私有字符串filmRating;//电影分级
私有LinkedList showingList=新LinkedList();
公共电影(int filmNumber、String filmTitle、int filmTime、String filmRating){
this.filmNumber=filmNumber;//将全局变量设置为正在传递的参数
this.filmTitle=filmTitle;//|
this.filmTime=filmTime;//|
this.filmRating=filmRating;//V
}
public int getFilmNumber(){
返回电影编号;
}
公共字符串getFilmTitle(){
返回电影名称;
}
public int getFilmTime(){
返回时间;
}
公共字符串getFilmRating(){
回报率;
}
公共字符串getStringFilmTime(){
字符串runtime=“;//返回值
int hours;//用于保存2个小时数字的变量
int minutes;//用于保存分钟数字的变量
hours=filmTime/60;//将原始输入格式设置为仅小时
分钟=电影时间%60;//将原始输入格式设置为分钟
如果(分钟<10){
运行时+=(整数.toString(小时)+“:0”+整数.toString(分钟));
//如果低于10,Mod将只返回一个位数
}
如果(分钟>10){
运行时+=(Integer.toString(小时)+:“+Integer.toString(分钟));
//没有添加“0”的同一语句
}
返回运行时;
}
public void setFilmNumber(int newFilmNumber){
filmNumber=新的filmNumber;
}
public void setFilmTitle(字符串newFilmTitle){
filmTitle=新的filmTitle;
}
公共无效setFilmTime(int newFilmTime){
电影时间=新电影时间;
}
public void setFilmRating(字符串newFilmRating){
电影评级=新电影评级;
}
//公共文件列表()
公共链接列表getShowList(){
返回显示列表;
}
}

这三门课是你仅有的吗?我这样问是因为——出于某种原因——如果在其他类旁边有一个名为
Object
的类,我可以重现错误消息

它可以简单到:

public class Object {
}
如果是这种情况,您永远不应该命名类
对象
字符串
整数
,或者包
java.lang
中出现的任何其他名称

public class Node {
 private Object data;
 private Node next;

 public Object getData() {
  return data;
 }
 public Node getNext() {
  return next;
 }
 public void setData(Object data) {
  this.data = data;
 }
 public void setNext(Node next) {
  this.next = next;
 }
}
public class Movie{
 private int filmNumber; //Movie ID
 private String filmTitle; //Title of Movie
 private int filmTime; //Movie Runtime
 private String filmRating; //Movie Rating
 private LinkedList showingList = new LinkedList();

 public Movie (int filmNumber, String filmTitle, int filmTime, String filmRating) {
  this.filmNumber = filmNumber; //sets global variable to parameter being passed
  this.filmTitle = filmTitle;   //                    |
  this.filmTime = filmTime;     //                    |
  this.filmRating = filmRating; //                    V
 }

 public int getFilmNumber() {
  return filmNumber; 
 }

 public String getFilmTitle() {
  return filmTitle;
 }

 public int getFilmTime(){
  return filmTime;
 }

 public String getFilmRating() {
  return filmRating;
 }

 public String getStringFilmTime() {
  String runtime = ""; //returned value
  int hours; //variable to hold 2 hour digits
  int minutes; //variable to hold minute digits

  hours = filmTime / 60; //formats original input to just hours
  minutes = filmTime % 60; //formats original input to just minutes

  if (minutes < 10) {
   runtime += ( Integer.toString(hours) + ":0" + Integer.toString(minutes));
   //Mod will only return a single digit if under 10
  }

  if (minutes > 10) {
   runtime += ( Integer.toString(hours) + ":" + Integer.toString(minutes));
   //Same statement without adding a '0'
  }

  return runtime;
 }

 public void setFilmNumber(int newFilmNumber) { 
  filmNumber = newFilmNumber;
 }

 public void setFilmTitle(String newFilmTitle) {
  filmTitle = newFilmTitle;
 }

 public void setFilmTime(int newFilmTime) {
  filmTime = newFilmTime;
 }

 public void setFilmRating(String newFilmRating) {
  filmRating = newFilmRating;
 }

 //public void setShowList()

 public LinkedList getShowList() {
  return showingList;
 }
}
public class Object {
}