
上QQ阅读APP看书,第一时间看更新
How to do it...
In the following steps and examples, we will see how we can disambiguate classes of the similar name using Kotlin's keyword.
- In Kotlin, you can disambiguate using the as keyword to locally rename the clashing entity. So in Kotlin, it will look as shown:
import foo.Bar // Bar is accessible
import bar.Bar as bBar // bBar stands for 'bar.Bar'
- Then, access their methods like this:
Bar.methodOfFooBar()
bBar.methodOfBarBar()
For example, let's see the use of the as keyword to disambiguate two classes having the same name (SomeClass.kt), but in different packages:
SameClass.kt (packageA)
package packageA
class SameClass {
companion object {
fun methodA(){
println("Method a")
}
}
}
SameClass.kt (packageB)
package packageB
class SameClass {
companion object {
fun methodB(){
println("Method b")
}
}
}
HelloWorld.kt is the class that uses classes with similar names:
import packageA.SameClass as anotherSameClass
import packageB.SameClass
fun main(args: Array<String>) {
anotherSameClass.methodA()
SameClass.methodB()
}