2015-01-21 40 views
1

比方說,我有,導入嵌套在科特林對象/對象功能

object Foo { 
    object Moo { 
    fun boo = 4 
    } 
} 

而且我想通過導入美孚使用哞,在斯卡拉我會做:

import Foo._ 
moo.boo 

我該怎麼辦這在Kotlin?

+1

在當前編譯器中有一個[bug](https://youtrack.jetbrains.com/issue/KT-6249),它阻止你從對象中導入任何東西。它應該允許導入嵌套的類和對象,但不應允許導入成員函數 – 2015-01-21 03:33:24

+0

此錯誤已在10月份修復。我剛剛嘗試過,它的工作原理。所以現在應該關閉這個問題。 – 2015-12-18 11:17:48

+0

它確實有效,所有形式的進口都在下面回答。 – 2015-12-31 11:33:15

回答

3

對於這樣的定義:

package a.b.c 

object Foo { 
    object Moo { 
     fun boo() = 4 
    } 
} 

你會導入,並以此作爲:

import a.b.c.Foo 

val xyz = Foo.Moo.boo() 

或爲:

import a.b.c.Foo.Moo 

val xyz = Moo.boo() 

或最後:

import a.b.c.Foo.Moo.boo 

val xyz = boo() 

最後一個被允許,因爲它們都是對象表達式,直到持有該方法的最終類。