2017-09-20 10 views
0

myClass.ktファイルにvar bを定義していますが、これはクラスが含まれていないため、アプリケーションは正しく動作します。なぜKotlinにクラスを持たないvarを定義できますか?

var bはJavaのstatic varと同じようですね。

メイン

package com.example.dagger.kotlin.ui 
class HomeActivity : DemoActivity() { 
    @Inject 
    lateinit var locationManager: LocationManager 

    override fun onCreate(savedInstanceState: Bundle?) { 
     super.onCreate(savedInstanceState) 
     setContentView(R.layout.activity_main) 
     (application as DemoApplication).component.inject(this) 

     // TODO Do something with the injected dependencies here 
     locationInfo.text = "Injected LocationManager:\n$locationManager" 


     Toast.makeText(this, b, Toast.LENGTH_LONG).show(); 

    } 



} 

myClass.kt

package com.example.dagger.kotlin.ui 
var b="New Girl" 

答えて

2

あなたは結果の.classファイルを逆コンパイルした場合、あなたが得る:

public final class myClassKt { 
    @NotNull 
    public static final String getB() { return b; } 
    public static final void setB(@NotNull String b) { ... } 
    @NotNull 
    private static String b = "New Girl"; 
} 

だから答えは、そのあなたprivate staticフィールドを取得し、staticアクセスメソッドを使用します(取得および設定)

関連する問題