使用表达式语言

时间:2011-10-18 13:07:42

标签: java jsf casting el

是否可以使用EL进行投射?

我有一个类车辆,以及另外两个扩展车辆的汽车和公共汽车。 我正在搜索所有的车辆,并且有一些数据在公共汽车中但在车中没有。

因此,我试图在汽车上展示汽车时的东西,而在公共汽车上展示汽车上的东西。

我怎么能这样做,Cast,instanceof?我怎么能这样做,因为我有点迷失在这里。

由于

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:-3)

您将通过从车辆类别扩展汽车和公共汽车(因为车辆将是父级)来实现。 例如

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
}