Для этого проекта я не имею права использовать общие классы.Я попытался скопировать все мои классы на другой компьютер друзей, и он получил ту же ошибку.
Я не могу делать вызовы, как ..
int counter = ((Movie) movieList.get(movListIndex)).getShowList().size();
Где getShowList () - метод в моем Фильмекласс, который возвращает LinkedList.
Eclipse говорит:
Невозможно кастовать из объекта в фильм
Дополнительно
movieList.add(objMovie, counter);
гдеobjMovie - это объект Movie.
Eclipse говорит:
Метод add (Object, int) в типе LinkedList не применим для аргументов (Movie, int)
-Предложением является метод change add для использования в Movie.
Мне нужно иметь возможность хранить LinkedList и Node таким образом, чтобы они могли воспринимать все, что является объектом, что, когда ясоздать класс фильма, который я не могу привести к объекту.
класс связанного списка
public class LinkedList {
Node head;
public LinkedList() {
head = null;
}
public boolean isEmpty() {
return(head==null);
}
public int size() {
int count = 0;
Node current = head;
while (current != null) {
count++;
current = current.getNext();
}
return count;
}
public Object get(int index) {
if ((index < 0) || (index > size()))
throw new IndexOutOfBoundsException();
Node current = head;
int count = 0;
while (count > 0) {
count ++;
current = current.getNext();
}
return current.getData();
}
public void add (Object data, int index) {
if ((index < 0) || (index > size())){
throw new IndexOutOfBoundsException();
}
Node previous = null;
Node current = head;
while (index > 0) {
index --;
previous = current;
current = current.getNext();
}
Node splice = new Node();
splice.setData(data);
splice.setNext(current);
if (previous == null)
head = splice;
else
previous.setNext(splice);
}
public Object remove (int index) {
if ((index < 0) || (index >= size()))
throw new IndexOutOfBoundsException();
Node previous = null;
Node current = head;
while (index > 0) {
index --;
previous = current;
current = current.getNext();
}
if (previous == null)
head = current.getNext();
else
previous.setNext(current.getNext());
return current.getData();
}
}
класс узла
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;
}
}