Kotlin Programming Cookbook
上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.

  1. 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'
  1. 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()

}