2014-06-23 35 views
1

考慮包com.example。在package com.example內部,我們有兩個名爲Foo和Bar的類。如何同時導入scala包中的所有類?

還有一個名爲Baz的對象位於名爲com.other的包中。有沒有一種方法可以只使用一個導入語句將Baz導入Foo和Bar?換句話說,我如何定義一個影響包(com.example)中的所有類(Foo和Bar)的導入塊?

我試過以下,但它不工作。

// filename:package.scala location:com/example 
package com { 
    package object example { 
    import other.Baz 
    } 
} 

// filename:Foo.scala location:com/example 
package com.example { 
    class Foo { 
    // Baz should be in scope here 
    Baz.methodCall() 
    } 
    class Bar { 
    // Baz should be in scope here too 
    Baz.methodCall() 
    } 
} 

我試過大量搜索,但我不確定如何說出這種情況。謝謝您的幫助。

+0

你嘗試過,在'Foo.scala','進口package.com.example._'? – matanster

+0

你真的打算使用'package object'嗎? – matanster

回答

0

你可以嘗試將它綁定到val

package com { 
    package object example { 
    val Baz = other.Baz 
    } 
} 

如果你不想Baz可見到外:

package com { 
    package object example { 
    private[example] val Baz = other.Baz 
    } 
} 
相關問題