access java base class's static member in scala
inheritance, java, scala, scala-java-interop, static
Solution
This isn't possible in Scala. Since Scala has no notation of `static` you can't access `protected static` members of a parent class. This is a known limitation.
The work-around is to do something like this:
// Java
public class BaseStatic extends Base {
protected int getCount() { return Base.count; }
protected void setCount(int c) { Base.count = c; }
}
Now you can inherit from this new class instead and access the static member through the getter/setter methods:
// Scala
class Derived extends BaseStatic {
println(getCount());
}
It's ugly—but if you really want to use `protected static` members then that's what you'll have to do.
Problem
Ihave some codes written in Java. And for new classes I plan to write in Scala. I have a problem regarding accessing the protected static member of the base class. Here is the sample code: Java code: ``` class Base{ protected static int count = 20; } ``` scala code: ``` class Derived extends Base{ println(count); } ``` Any suggestion on this? How could I solve this without modifying the existing base class