title: Kotlin compiler says getString() is nullable even though it has a default value
body: <p>My code:</p>
  
  <pre><code>var users: MutableList&lt;String&gt; = mutableListOf()
  lateinit var players: ArrayList&lt;Player&gt;
  
  
  override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      val sharedPrefPlayers = activity?.getPreferences(Context.MODE_PRIVATE)
      sharedPrefPlayers?.all?.keys?.forEach {
          val filename = "player_$it"
          val playerSharedPref = activity?.getSharedPreferences(filename, Context.MODE_PRIVATE)
          players.add(Player(playerSharedPref!!.getString("name", ""), playerSharedPref.getInt("age", 0), playerSharedPref.getString("gender", "male")))
      }
      players = arrayListOf()
  }
  </code></pre>
  
  <p>I'm getting a <code>Type Mismatch - Required: String, Found: String?</code> on my <code>getString()</code> call above. I'm not sure how the <code>String</code> is nullable as there is a default String backdrop of <code>""</code> if "name" is not found.</p>
  
  <p>Also, the <code>getInt()</code> call doesn't have that error.</p>
  
  <p>Any idea?</p>