title: Android Kotlin class reified issue
body: <p>When I want to get int value from sharedpreferences I was getting the <code>UnsupportedOperationException</code> But I show from logcat, this class is <code>Int</code>. What's wrong?</p>
  
  <pre><code>operator inline fun &lt;reified T : Any&gt; get(@XMLS xml: String, @KEYS key: String, defaultValue: T? = null): T {
      Timber.d("${T::class} + $xml + $key + $defaultValue")
      return when (T::class) {
          String::class -&gt; getShared(xml)?.getString(key, defaultValue as? String ?: "") as? T ?: "" as T
          Int::class -&gt; {
              Timber.d("not triggered") //&lt;&lt;
              getShared(xml)?.getInt(key, defaultValue as? Int ?: -1) as? T ?: -1 as T
          }
          Boolean::class -&gt; getShared(xml)?.getBoolean(key, defaultValue as? Boolean == true) as? T ?: true as T
          Float::class -&gt; getShared(xml)?.getFloat(key, defaultValue as? Float ?: -1f) as? T ?: -1f as T
          Long::class -&gt; getShared(xml)?.getLong(key, defaultValue as? Long ?: -1) as? T ?: -1 as T
          else -&gt; throw UnsupportedOperationException("unknown class!")
      }
  }
  </code></pre>
  
  <p>Outputs:</p>
  
  <pre><code>class kotlin.Int + application_data + Ver + null
  </code></pre>