Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Anyone solved the RedLight , GreenLight, AmberLight problem? Can you please post your code? #611

Open
DikshantDulal opened this issue Apr 28, 2022 · 2 comments

Comments

@DikshantDulal
Copy link

DikshantDulal commented Apr 28, 2022

No description provided.

@calvinseptyanto
Copy link

abstract class TrafficLight {
private final String color;

TrafficLight(String color) {
    this.color = color;
}

abstract TrafficLight toggle();

@Override
public String toString() {
    return this.color;
}

}

abstract class RedLight extends TrafficLight {
RedLight() {
super("red");
}

@Override
TrafficLight toggle() {
    return new GreenLight();
}

}

abstract class GreenLight extends TrafficLight {
GreenLight() {
super("green");
}

@Override
TrafficLight toggle() {
    return new AmberLight();
}

}

abstract class AmberLight extends TrafficLight {
AmberLight() {
super("amber");
}

@Override
TrafficLight toggle() {
    return new RedLight();
}

}

RedLight redLight = new RedLight() {
RedLight red = this;
@OverRide
TrafficLight toggle() {
return new AmberLight() {
@OverRide
TrafficLight toggle() {
return new GreenLight() {
@OverRide
TrafficLight toggle() {
return new AmberLight() {
@OverRide
TrafficLight toggle() {
return red;
}
};
}
};
}
};
}
};
toggling(redLight, 7);

@ghost
Copy link

ghost commented Apr 28, 2022

If you are talking about the cyclic dependency one, you have to make the classes abstract and create anonymous inner classes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants