Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 返回泛型对象时在scala中发现不匹配_Oop_Scala_Types_Playframework 2.1 - Fatal编程技术网

Oop 返回泛型对象时在scala中发现不匹配

Oop 返回泛型对象时在scala中发现不匹配,oop,scala,types,playframework-2.1,Oop,Scala,Types,Playframework 2.1,我有以下方法: def addProduct(language:String, tenantId:String, product:Product): BaseResponse[String] = { ... } catch { var errorResponse = ErrorResponseList.GeneralError errorResponse.addMessage(ex.getMessage()) errorResponse // <= With this

我有以下方法:

def addProduct(language:String, tenantId:String, product:Product): BaseResponse[String] = 
{ 
   ...
}
catch
{
  var errorResponse = ErrorResponseList.GeneralError
  errorResponse.addMessage(ex.getMessage())
  errorResponse // <= With this, i cant compile !
 //ErrorResponse(ErrorCode.GeneralError, ex.getMessage, 500) // <= With this, I CAN Compile
}
var errorResponse = ErrorResponseList.GeneralError
我的代码未编译,它会引发错误:

type mismatch; found : model.ErrorResponse[Nothing] required: model.BaseResponse[String] Note: Nothing <: String, but class BaseResponse is invariant in type T. You may wish to define T as +T instead. (SLS 4.5)
但在构建对象时不使用helper方法将编译。。我不明白为什么,都一样


谢谢

您正在ErrorResponse中使用类型参数,但从不提供类型值

您需要执行以下操作之一:

创建ErrorResponse时显式提供类型参数

或者,如果T与ErrorResponse的属性之一对应,则为该属性指定一个T类型

ErrorResponse[T](errCode: Int = -1, var errMessage: T, httpCode:Int)
如果T是所有ErrorResponse的字符串,请从ErrorResponse的定义中删除T,并将字符串传递给它的超类:

case class ErrorResponse(
    errCode: Int = -1, var errMessage: String = "", httpCode:Int
) extends BaseResponse[String]
ErrorResponse[T](errCode: Int = -1, var errMessage: T, httpCode:Int)
case class ErrorResponse(
    errCode: Int = -1, var errMessage: String = "", httpCode:Int
) extends BaseResponse[String]