2014-10-27 51 views
0

讓我們的階級結構如何通過繼承傳遞隱式參數在akka中?

類結構

抽象基類開始

abstract class BaseCass { 
    def someFunction() : Any 

    //Here is the place where someFunction is called 
    startUpMethod = { 
     someFunction()    
    } 
} 

基地implemetation

import Utility._ 
class BaseImpelmentation { 
    //These parameters are not passed into method calls 
    implicit object ParameterOne = ParameterOne 
    implicit object ParameterSecond = ParameterSecond 
    implicit object ParameterThird = ParameterThird 

    def someFunction() : Any = { 
     functionWithImplicitOne(); 
     functionWithImplicitSecond(); 
     functionWithImplicitThird(); 
    } 
} 

類具有隱函數

class Utility { 
    //here all function with implicit are defined. 
} 

該算法

  1. someFunction在類的初始化被稱爲例如它的構造後調用,但之前在
  2. someFunction任何其他方法BaseImpelmentation overrided
  3. BaseImpelmentation進口與實用工具類隱含參數的功能。

問題

someFunction被稱爲在從BaseImpelmentation BaseClass的隱式參數不被使用。所以我必須將它們放在BaseCass中。但是在這種情況下,我將一個實現放在抽象類中,這不是很好。

是否有可能將隱式參數設置到BaseImpelmentation中,但不像通常的參數那樣傳遞它們?

回答

0

如果someFunction只在類完全構造時調用,那麼這應該工作;在BaseImpelmentation [原文如此]中調用functionWithImplicitOne()將使用ParameterOne,因爲它在調用方法的範圍內。你的問題是別的。什麼是實際的錯誤信息?