while nicely accessible from Java, this is more dangerous than necessary for Java (imagine someone forgetting those “pointless” parens); we usually use a `case object` with an explicit `def getInstance = this` for Java clients