34967


以下の処理をkotlinで書きたいのですが  
ご教授のほどよろしくお願いします。  
公式のDocumentを探したのですが見つけられなかったため質問させてください。  
やりたいことはrealmの読み書きが発生したときの通知を実装したいです

[code]

    private Realm realm;
    private RealmChangeListener realmListener;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          realm = Realm.getDefaultInstance();
          realmListener = new RealmChangeListener() {
            @Override
            public void onChange(Realm realm) {
            }};
          realm.addChangeListener(realmListener);
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            // Remove the listener.
            realm.removeChangeListener(realmListener);
            // Close the Realm instance.
            realm.close();
        }
    }
    
[/code]


CC BY-SA 3.0
2017-05-23T10:50:51.020
34963
2017-05-23T14:17:47.300
2017-05-23T14:17:47.300
13199
13496
question
java realm kotlin
RealmのJavaからkotlinへ書き換えたい


Kotlin pluginを入れたAndroid Studioであれば、`Code` メニューに `Convert Java File to Kotlin
File`というのがあるのでこれを使うと自動的にKotlinのコードに変換してくれます。

例えば質問にあるコードを変換すると以下のようになります。Kotlinとしてはベストなコードではないですが、これをスタート地点として、`lazy`を使って`var`を`val`に変えていったり
`!!`を排除する方向で修正していくのがいいのではないかと思います。

[code]

    class MyActivity : Activity() {
        private var realm: Realm? = null
        private var realmListener: RealmChangeListener<Realm>? = null
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            realm = Realm.getDefaultInstance()
            realmListener = RealmChangeListener<Realm> { }
            realm!!.addChangeListener(realmListener)
        }
    
        override fun onDestroy() {
            super.onDestroy()
            // Remove the listener.
            realm!!.removeChangeListener(realmListener)
            // Close the Realm instance.
            realm!!.close()
        }
    }
    
[/code]


CC BY-SA 3.0
2017-05-23T13:42:02.353
34967
2017-05-23T13:49:24.067
2017-05-23T13:49:24.067
319
319
34963
answer