【问题标题】:Java program convert to scala the interoperability problemsJava程序转换为scala的互操作性问题
【发布时间】:2013-07-01 23:28:27
【问题描述】:

这里出现java列表转换错误

Scala 代码

 @SuppressWarnings("unchecked") 
  @Override
  def getAllStudents():List[Student] = {
    return getSession().createQuery("from Student where isDelete =  'false' ")
    .list()  **here error occured and that shows below **
     }

这里我导入了这条语句,但没有改变

import scala.collection.JavaConverters._

错误 类型不匹配;发现:java.util.List[?0] 需要类型 ?0: scala.collection.immutable.List[com.model.domain.entity.Student]

Java 代码

@SuppressWarnings("unchecked")
    @Override
    public List<Student> getAllStudents() {
        return getSession().createQuery(
                "from Student where isDelete =  'false' ").list();
    }

【问题讨论】:

  • 你把import scala.collection.JavaConverters._放在哪里了?
  • @om-nom-nom 程序顶部...

标签: java scala scala-java-interop


【解决方案1】:

您自己的答案不正确。相反,如果您正在实现需要返回 Java 列表的接口(或扩展类),您应该这样做:

def getAllStudents() : java.util.List[Student] = {
  getSession().createQuery("from Student where isDelete =  'false' ")
    .list()
 }

如果你不需要这里需要Java列表,那么你应该这样做

import scala.collection.JavaConverters._

def getAllStudents() : Seq[Student] = {
  getSession().createQuery("from Student where isDelete =  'false' ")
    .list().asScala
 }

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2014-12-25
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多