“会话”接口有两种方法,在Scala中由于类型擦除而减少为具有相同的签名:
public ProcedureCall createStoredProcedureCall(String procedureName, Class... resultClasses)
public ProcedureCall createStoredProcedureCall(String procedureName, String... resultSetMappings)
尝试实现它们会产生错误:
错误:double定义:方法createStoredProcedureCall:(procedureName:String,resultSetMappings:String *)org.hibernate.procedure.ProcedureCall和方法createStoredProcedureCall :( procedureName:String,resultClasses:Class [_])org.hibernate.procedure.ProcedureCall at line 199擦除后具有相同的类型:(procedureName:String,resultSetMappings:Seq)org.hibernate.procedure.ProcedureCall override def createStoredProcedureCall(procedureName:String,resultSetMappings:String):ProcedureCall = null ^
那么我将如何以编译和工作的方式实现此接口?
1 回答
正如serejja指出的那样,您可以在Java中编写一个垫片来为您进行翻译:
Java的:
如果你正在使用sbt,它可以存在于src / main / java / jibernate / Yava.java中
斯卡拉:
您可以以相同的方式调用这些函数,利用您保证至少有一个所需的varargs这一事实 .