Привет, ребята Я отношусь к Java с релятивизмом, и я немного борюсь с использованием дженериков. В принципе, я хочу перебрать коллекцию переходов, которые хранятся в Set-class. Если я создаю экземпляр класса Set, у меня нет никаких проблем, но я хочу перебирать переходы, хранящиеся в FA-классе, что вызывает некоторые проблемы (невозможно преобразовать Object to Transition). Должна быть какая-то проблема с код, но я не могу найти его :(Java итерация по генераторам
public static void main(String[] args) {
FA fa = new FA(new Set<String>("A", "B", "C"),
"A",
new Set<Transition>(new Transition("A", 1, "B"),
new Transition("B",2,"C")),
new Set<String>("C"));
Set<Transition> t=new Set();
t.add(new Transition("A", 1, "B"));
for (Transition transition : t) {
//Works as intended
}
//error cannot convert Object to Transition
for (Transition transition : fa.Transitions) {
//not working
}
Fa-класс:
public class FA<T>
{
public Set<T> States;
public T StartState;
public Set<Transition> Transitions;
public Set<T> FinalState;
public FA(){}
public FA(Set<T> states, T startstate, Set<Transition> transitions, Set<T> finalstate) {
States = states;
StartState = startstate;
Transitions= transitions;
FinalState = finalstate ;
}
}
Set-класс:
public class Set<T> implements Iterable<T>
{
private ArrayList<T> Menge=new ArrayList<T>();
public Set(T ... menge) {
for(int i=0; i < menge.length; i++) {
Menge.add((T) menge[i]);
}
}
public int count() {
return Menge.size();
}
public T get(int i) {
return (T)Menge.get(i);
}
public void add(T i) {
Menge.add((T)i);
}
@Override
public String toString() {
return Menge.toString();
}
@Override
public Iterator<T> iterator() {
// TODO Auto-generated method stub
return Menge.iterator();
}
}
Transition-класс:
public class Transition<T>
{
private T Source;
private T Label;
private T Target;
public Transition(T source, T label, T target) {
Source = source;
Label = label ;
Target = target;
}
public T get(int i)
{
if(i==1)return Source;
if(i==2)return Label;
return Source;
}
@Override
public String toString() {
return Source.toString() + " - " + Label.toString() + " -> " + Target.toString();
}
}
fa.Transition или fa.TransitionS? – DmitryKanunnikoff
В вашем первом блоке кода вы ссылаетесь на fa.transition, которого не существует. – ControlAltDel
Переходы извиняются;) но не исправляет ошибку – Brainless