2011-10-18 19 views
10

È possibile eseguire il cast utilizzando EL?Cast con linguaggio di espressione

Ho un veicolo di classe e due altre classi di auto e autobus che ampliano il veicolo. Sto cercando tutti i veicoli e ci sono alcuni dati che hanno nel bus ma non hanno in auto.

Quindi stavo cercando di mostrare le cose dall'automobile quando è un'auto e le cose dal bus quando si tratta di un autobus.

Come potrei farlo, Cast, instanceof? E come lo farei, perché sono un po 'perso qui.

Grazie

+0

lo farei con instanceof. – Jay

+0

Voglio farlo per mostrare alcuni dati di Bus ad esempio in EL, non su Java – pringlesinn

risposta

9

È possibile utilizzare ${obj.class.simpleName == 'Car'} ma non è la cosa migliore cosa da fare.

Forse si può avere un metodo astratto geType() e usarlo per differenziare. Ad esempio:

+0

Come posso visualizzare se un Bus ha una toilette se solo Bus ha il suo metodo, voglio dire, come visualizzerei il valore di questo attributo . – pringlesinn

+0

'getType()' sarebbe lo stesso di 'instenceof' e lo stesso di' .simpleName'. Fai un "se" per controllare. – Bozho

+0

Come ho ancora un po 'perso, ti dispiacerebbe darmi un esempio di come raggiungere alcuni attributi dal Bus? – pringlesinn

-3

lo farai estendendo auto e bus dalla classe del veicolo (come il veicolo sarà di classe madre). Per esempio

public class Vehicle { 
    public void speed(){ 
    // some code 
    } 
} 
public class Car extends Vehicle { 
    public void speed(){ 
    // some code 
    } 
} 
public class Bus extends Vehicle { 
    public void speed(){ 
    // some code 
    } 
} 

ora è possibile controllare mentre li avviando o di ottenere che il tempo si tratta di un caso di veicoli di non utilizzare instanceof parola chiave.

cioè

if(new car() instanceOf Vehicle){ 
//somecode 
} 
+1

Voglio accedervi da una pagina JSF, usando Expression Language – pringlesinn

Problemi correlati