Это можно сделать с помощью конвертера:
import scala.collection.JavaConversions._
object ListConverter {
def toScalaList( jlist: java.util.List[AnyRef] ) = {
jlist.toList
}
}
, который использует implicit def asScalaBuffer
в JavaConversions
для возврата списка Scala.Тогда я могу сделать список инъекционным:
<bean id="someItems" class="my.package.ListConverter" factory-method="toScalaList">
<constructor-arg type="java.util.List">
<util:list>
<ref bean="itemOne"/>
<ref bean="itemTwo"/>
</util:list>
</constructor-arg>
</bean>
Я бы хотел найти более чистый способ сделать это
Я не могу использовать JavaConversions
непосредственно как статический вызов фабрики:
<bean id="someItems" class="scala.collection.JavaConversions" factory-method="asScalaBuffer">...</bean>
Поскольку implicit def
на самом деле не является статическим методом во вселенной Java.
PS Чтобы убрать его с пути.Я знаю, что есть много любителей конфигурации, управляемых аннотациями, но я не один из них, и это не решение, которое я ищу: Мне нравятся мои XML для конфигураций Spring и Мне нравится весна в DI Scala