Play框架:不兼容的类型:java.util.List 不能转换为java.lang.String

问题描述:

我试图在Play框架2.5的简单视图,但我不断收到此编译时错误java.util.List<models.Vehicle> cannot be converted to java.lang.StringPlay框架:不兼容的类型:java.util.List <models.Vehicle>不能转换为java.lang.String

我已经尝试过this answer

scala.collection.immutable.List<String> ls = JavaConverters.asScalaBufferConverter(scripts).asScala().toList(); 

但没有.toList()功能,它无法识别。 这是我的代码:

Aplication.java

package controllers; 

import models.Vehicle; 
import play.mvc.Controller; 
import play.mvc.Result; 
import scala.collection.JavaConverters; 

public class Application extends Controller { 

    public Result index() { 
    //  this does not work 
    //  scala.collection.immutable.List<Vehicle> ls = JavaConverters.asScalaBufferConverter(Vehicle.finder.all()).asScala().toList(); 
       return ok(views.html.index.render(Vehicle.finder.all())); //here is the error 
    } 

} 

index.scala.html

@(vehicles: java.util.List[Vehicle]) 

@main("Welcome to Play") { 

    <header> 
     <hgroup> 
      <h1>Dashboard</h1> 
      <h2>Vehicles</h2> 
     </hgroup> 
    </header> 

    <ul> 
    @for(vehicle <- vehicles) { 
     <li>@vehicle.getModel</li> 
    } 
    </ul> 
} 

相关的代码在Vehicle.java

package models; 

import javax.persistence.*; 
import java.util.List; 
@Entity 
public class Vehicle extends BaseEntity { 

    public static Finder<Long, Vehicle> finder = new Finder<Long, Vehicle>(Vehicle.class){}; 
    @Column(nullable = false) 
    String model; 

    public String getModel() { 
     return model; 
    } 

    public void setModel(String model) { 
     this.model = model; 
    } 
} 

任何帮助将是非常赞赏。

+0

哦,我得到了,它只需要在项目目录中执行'clean compile'...我想我只是累了 –

好了,万一有人认为这在未来,尝试

activator clean compile 
在项目文件夹

只做compile根本没有帮助。