title: Kotlin: are companion object lateinit vars initialised once?
body: <p>Given the code below:</p>
  
  <pre><code>class Foo {
      companion object {
          lateinit var names: Array&lt;String&gt;
      }
      init {
          names = arrayOf("George", "Keith", "Martha", "Margret")
      }
  
  }
  </code></pre>
  
  <p>If I created two instances of <code>Foo</code>:</p>
  
  <pre><code>var foo1 = Foo();
  var foo2 = Foo();
  </code></pre>
  
  <p>is <code>names</code> going to be initialised/assigned twice, and therefore with any subsequent <code>Foo</code> initialisation?</p>
  
  <p>My intent is to have a simple static variable <code>names</code> holding those predefined names.</p>
  
  <p><strong>Update:</strong></p>
  
  <p>This is assuming I do not want to have: <code>var names: arrayOf("George", "Keith", "Martha", "Margret")</code> inside companion object.</p>