2013-03-20 2 views
0

Я использую Play Framework 2.0, Я пытаюсь распечатать таблицу, и в зависимости от типа моих данных моя программа будет вводить разные. Я уже понял, как определить класс моего входа с помощью isInstanceOf, но когда я делаю это на список, он возвращает:Play Framework 2.0, Scala определяют тип ввода и распечатывают список

non-variable type argument models.Medication in type java.util.List[models.Medication] is unchecked since it is eliminated by erasure 

Ниже мой код:

@(title: String)(content: Object) 
<tr> 
<td>@title</td> 
@if(content.isInstanceOf[Date]) {  
    <td>@content.asInstanceOf[Date].format("yyyy-MM-dd")</td>  
} else{ 
    @if(content.isInstanceOf[List[Medication]]){ 
     <td> 
     <table> 
     @for(a <- content) { 
      @a.name<br> 
     } 
     </table> 
     <td> 
    } else { 
     <td>@content</td> 
    } 
} 

Пожалуйста, помогите ...

+0

Это только предупреждение? Предотвращает ли компиляция кода? Предупреждение сообщает вам, что во время выполнения «Лекарство» - это «Список [Лекарство]», стирается, и JVM может возвращать «true», даже если контент был просто «List [Object]». – huynhjl

+0

Он работает на Play, и остановил меня от компиляции ... (или есть способ отключить предупреждение?) – hook38

ответ

0

Я не думаю, что предупреждение предотвращает компиляцию, возможно, это заслоняет реальную ошибку компиляции.

Попробуйте content.isInstanceOf[java.util.List[_]] в если тест (это должно привести к предупреждению).

Также необходимо, чтобы листинг содержание: for (a <- content.asInstanceOf[java.util.List[Medication]]) в выражении.

Я не уверен, как фигурирует в шаблоне игры, это List от vaasa Scala's List, так что это может дать полное имя.

Смежные вопросы