2011-10-18 14 views
10

ELを使用してキャストすることは可能ですか?表現言語でキャスト

私はクラスのビークルと、ビークルを拡張する2つのクラスのカーとバスを持っています。 私はすべての車両を探していますが、バスにはあるが車にはないデータがあります。

私は車であれば車から、バスであればバスからのものを見せようとしていました。

どうすればいいですか、Cast、instanceof?そして、どうすればいいのか、私はちょっとここで失われてしまいます。

おかげ

+0

。 – Jay

+0

私はバスのデータをELではなくJavaで表示することを望んでいます – pringlesinn

答えて

9

あなたは${obj.class.simpleName == 'Car'}を使用することができますが、それは行うための最善のもののことではありません。

おそらくgeType()という抽象的な方法を使用して区別することができます。例:

<c:forEach items="${vehicles}" var="vehicle"> 
    Reg.No: ${vehicle.registrationPlateNumber} 
    <c:if test="${vehicle.type == 'bus'}"> 
     Toilets: ${vehicle.toilets} 
    </c:if> 
</c:forEach> 
+0

バスだけにメソッドがある場合はバスにトイレがあるかどうかを表示するにはどうすればいいですか? 。 – pringlesinn

+0

'getType()'は 'instenceof'と同じで、' .simpleName'と同じです。チェックするには 'if'を行います。 – Bozho

+0

私はまだ少し失われているので、バスからいくつかの属性に達する方法の例を教えてもらえますか? – pringlesinn

-3

車クラスから車とバスを延長することで(車両は親クラスとなるため)行います。それらを開始するか、天候がそれはINSTANCEOFキーワードを使用していないの車両のインスタンスであることを取得中に例

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 
    } 
} 

については は、今あなたがチェックすることができます。私はINSTANCEOFでそれを行うだろう

すなわち

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

Expression Languageを使用してJSFページからアクセスしたい – pringlesinn

関連する問題