我不确定为什么这不会编译 - 我试图使用内部类(或特征),以便其他对象可以使用结果" RequestReturn&#34 ;但是,只有Trait Request及其后代才能构建该对象。我可能采取了错误的方法,但这段代码不应该在逻辑上有效吗?我已将RequestReturn构造函数标记为protected [Request],因此可以理解类RequestContinue也能够调用构造函数。
trait Request {
class RequestReturn protected[Request](val x:Any)
def fulfill(item:Boolean):RequestReturn = new RequestReturn(item) //this line compiles
}
trait RequestContinue extends Request{
override def fulfill(item:Boolean):RequestReturn = new RequestReturn(item) //this won't compile
}
错误:(19,54)无法在特征RequestContinue中访问类RequestReturn中的构造函数RequestReturn 不允许访问受保护的构造函数RequestReturn,因为 在包....中包含特征RequestContinue不是它的子类 class Trade请求返回特定于目标的请求 override def fulfill(item:Boolean):RequestReturn = new RequestReturn(item) ^
答案 0 :(得分:4)