0

私は Play Framework 2.0 を使用しています。テーブルを印刷しようとしています。データの種類によって、プログラムの入力が異なります。isInstanceOf を使用して入力のクラスを定義する方法は既に理解しましたが、リストでそれを行うと、次のように返されます。

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

助けてください...

4

1 に答える 1

0

警告がコンパイルを妨げているとは思いませんが、実際のコンパイル エラーがわかりにくくなっている可能性があります。

ifテストを試してくださいcontent.isInstanceOf[java.util.List[_]](これにより、警告が消えます)。

また、 for 式でcontent:をキャストする必要があります。for (a <- content.asInstanceOf[java.util.List[Medication]])

ListPlay テンプレートが Javaと Scala の違いをどのように判断するのかよくわからないListので、完全修飾名が役立つかもしれません。

于 2013-03-21T05:06:04.490 に答える