3
votes

Can I check the value of field in companion object without referring to class' actual object?

I'd like to store a static counter, increase it everytime new object of that class is created and be able to check it's value without using object itself, is this possible?

2
Could you provide some code example what you would like achieve? Because now it sounds like the only thing you need is just a plain var in an object.Rado Buransky
How did you access Foo.counter from outside class Foo ?Faheem Sohail

2 Answers

9
votes

Is this what you want?

   object Foo {
        private var counter = 0
        private def increment = {
           counter += 1; 
           counter
        }
    }

    class Foo {
        val i = Foo.increment
        println(i)
    }
8
votes
import java.util.concurrent.atomic.AtomicInteger
object Foo {
  val counter = new AtomicInteger(0)
}
class Foo {
  val i = Foo.counter.incrementAndGet()
  println(i)
}