2014-01-07 5 views
1

Могу ли я проверить значение поля в сопутствующем объекте без ссылки на действительный объект класса?Поле «Статическое» в объекте Companion Scala

Я хотел бы хранить статический счетчик, увеличивать его каждый раз, когда создается новый объект этого класса и он может проверить его значение без использования самого объекта, возможно ли это?

+0

Могли бы вы предоставить некоторые пример кода, что вы хотели бы достичь? Потому что теперь, похоже, единственное, что вам нужно, это просто простой var в объекте. –

+0

Как вы попали в Foo.counter из внешнего класса Foo? –

ответ

6

Это то, что вы хотите?

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

    class Foo { 
     val i = Foo.increment 
     println(i) 
    } 
+0

Хорошо, никогда. Я пробовал доступ к Foo.counter из-за пределов класса Foo {} раньше, и он, похоже, не работал, но теперь это происходит. Извините за беспокойство! –

5
import java.util.concurrent.atomic.AtomicInteger 
object Foo { 
    val counter = new AtomicInteger(0) 
} 
class Foo { 
    val i = Foo.counter.incrementAndGet() 
    println(i) 
} 
Смежные вопросы