Nie, nie chodzi o reflekcje :-) Chodzi o konstrukcję klas. Mam obiekt, Reversible, który jest tablica kolejnych, różnych obiektów. Potrzebuję teraz stworzyć do tego klasę, która jako pole przyjmuje referencję np: pierwszego z tych obiektów (Cat), aby można było użyć to (Cat) w odpowiedniej metodzie. Gdy stworzę po prostu klasę Reversible, nie jest ona w stanie pobrać RefersibleString, ze względu na zły typ danych.
Nie wiem po prostu jak klasa Reversible powinna/ może wyglądać w tym przypadku...
To może tak, cała główna klasa ma wyglądać tak:
public class ReverseTest {
public static void main
(String
[] args
) { Reversible[] revers = new Reversible[] {
new ReversibleString("Cat"),
new ReversibleDouble(2),
new ReversibleDouble(3),
new ReversibleString("Dog"),
new ReversibleString("Alice has a cat and a dog"),
new ReversibleDouble(10)
};
System.out
.println
("Normal:"); for (Reversible r : revers) {
}
for (Reversible r : revers) {
r.reverse();
}
System.out
.println
("Reversed:"); for (Reversible r : revers) {
}
System.out
.println
("Restored and changed:"); for (Reversible r : revers) {
/*<- MODIFY HERE */
}
}
}
zadanie ma głównie polegać na użyciu interfejsów, ale aby to zrobić muszę mieć najpierw odpowiednie klasy z polami i metodami. A pola murza przyjmować odpowiednie referencje, które będę "obrabiać :-D) w metodach.
Gdy tworzę klasę Reversible.java, która swoją drogą właśnie nie wiem jaki typ powinna przyjmować do swojego pola, to właśnie kompilator wyrzuca mi błąd o niewłaściwym typie danych (chodzi konkretnie o wszystkie elementy znajdujące się w tablicy Reversible czyli
new ReversibleString("Cat"),
new ReversibleDouble(2), itd...
Gdy nie utworzę klasy Reversible.java, tylko np. ReversibleString.java to kompilator nie rozpoznaje Reversible[], wyrzuca pierwsze miejsce gdzie to się pojawia jako błąd. Nie wiem jak jeszcze inaczej można by do tego zagadnienia aby pobrać np Cat do jakiejś metody?