class Foo(bar: String) {
import Foo.Bar
def this() = this(Bar) // this line fails, it seems I can only do
// def this() = this(Foo.Bar)
}
object Foo {
val Bar = "Hello Bar"
}
Basically, how do I use Bar
after I import Foo.Bar
, do I really have to call Foo.Bar
every single time?
Secondary constructors have outer scope to prevent you doing something silly like this:
class Silly(foo: String) {
val bar = 123
def this() = this(bar.toString)
}
where you try to pass a parameter to the constructor...after creating it in the constructor.
Unfortunately, this means that import Foo.Bar
is not in scope for that line. You'll have to use the full path Foo.Bar
.
For everything in the class except the additional constructors, Foo.Bar
will be in scope as Bar
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With