看看下面代码该怎么办,我想返回scala的List
wanghuanqiu
2012-10-24
def findAll(): List[T] = {
getJpaTemplate().find("from " + persistentClass.getName) } getJpaTemplate().find("from " + persistentClass.getName) 返回一个java.util.List 如果想返回一个scala的List, getJpaTemplate().find("from " + persistentClass.getName).asInstanceOf[List[Person]].toList这样不行,强制转换是不可以的。 如果用asScala不能返回T这个泛型,编译都不过 难道只能这么写吗 def findAll(): List[T] = { var ls: JList[T] = getJpaTemplate().find("from " + persistentClass.getName).asInstanceOf[JList[T]] var i = 0; var s = List[T](); while(i < ls.size()){ s:::=List(ls.get(i)) i=i+1 } s } 恳求指点 |
|
squirel
2012-10-25
import collection.JavaConversions._
就可以进行隐式类型转换,你可以把java list当成一个scala mutable Buffer或Seq使用,具体请看collection.JavaConversions API说明 |
|
wanghuanqiu
2012-10-25
squirel 写道 import collection.JavaConversions._
就可以进行隐式类型转换,你可以把java list当成一个scala mutable Buffer或Seq使用,具体请看collection.JavaConversions API说明 但是buffer是不带类型的,只是一个Buffer[?],如过用buffer就不能用泛型T |
|
wanghuanqiu
2012-10-25
明白了关键这段代码是getJpaTemplate().find("from " + persistentClass.getName)这句导致的没有返回T泛型
|
|
XIAOLINJAVA
2013-02-21
为了实现Java与Scala集合的互相转换,Scala提供2个API
import scala.collection.JavaConversions._ import scala.collection.JavaConverters._ 具体的转换方式请进入我的博客主页参考: Java软件攻城师联盟网:我是软件攻城师,我为自己代言 http://javalianmong.sinaapp.com/?p=111 |