1
我不知道爲什麼這不會編譯 - 我試圖使用內部類(或特徵),使其他對象可以與產生的「RequestReturn」,但只有特質請求和它的後代可以首先構造對象。我可能會採取錯誤的方法,但不應該在邏輯上工作的代碼?我已經將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)在類RequestReturn構造RequestReturn不能在性狀RequestContinue訪問 訪問受保護的構造RequestReturn不允許的,因爲 包圍性狀RequestContinue在包....是不是一個的子類 類RequestReturn在性狀請求,其中目標被定義 倍率DEF履行(項目:布爾型):RequestReturn =新RequestReturn(項目) ^