Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main{
- static class Coppia< T > {
- private T primo;
- private T secondo;
- //Step3: primo è "r" quindi Radio24 mentre secondo è VirginRadio
- public Coppia(T primo, T secondo){
- this.primo = primo;
- this.secondo = secondo;
- }
- //Step6: e1 è VirginRadio, quindi entra nella prima if e restituisce primo
- //Dallo step3 sappiamo ora chi è primo
- public T get(Emittente e1){
- if(e1 instanceof VirginRadio)
- return this.primo;
- else
- return this.secondo;
- }
- }
- static class Emittente {
- public void stampa() {
- System.out.println("Emittente radiofonica");
- }
- }
- static class Radio24 extends Emittente {
- //step7: quindi l'oggetto X dello step5, restituito dal get è Radio24
- @Override
- public void stampa(){
- System.out.println("Radio 24");
- }
- }
- static class VirginRadio extends Emittente {
- @Override
- public void stampa(){
- System.out.println("Virgin Radio");
- }
- }
- public static void main(String[] args){
- Emittente r = new Radio24();
- VirginRadio v = new VirginRadio();
- Emittente e = new Emittente();
- e = v; //Step1: adesso "v" ed "e" sono la stessa cosa (VirginRadio), l'oggetto creato alla riga 54 è perso!
- //Step2: viene creato l'oggetto Coppia(r,e), al cui interno vengono inseriti r (Radio24) ed e (VirginRadio)
- //Step4: l'oggetto coppia viene passato a Stampa insieme a v(VirginRadio)
- stampa(new Coppia< Emittente >(r, e), v);
- }
- static void stampa(Coppia< ? extends Emittente > c, Emittente v){
- //Step5: c è la coppia e contiene r(Radio24) ed e(virginRadio), qui viene richiamato il metodo get passando come oggetto v (VirginRadio)
- //il quale restituisce un oggetto X su cui viene richiamato stampa
- c.get(v).stampa();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement