私は、Javaでこのコードを持っている場合ヌルチェックの条件が
return mFingerprintManager.hasEnrolledFingerprints() &&
createKey(DEFAULT_KEY_NAME, true) &&
if (mCipher != null) {
mCipher?.apply { initCipher(this, DEFAULT_KEY_NAME) }
return true
} else {
return false
}
はそれがあるので、Kotlinコードを書くためのより良い方法はあり、ここで示したように、私はKotlinに変換している
return mFingerprintManager.hasEnrolledFingerprints() &&
createKey(DEFAULT_KEY_NAME, true) &&
initCipher(mCipher, DEFAULT_KEY_NAME);
もっと簡潔ですか?変数mCipherは、クラスレベルで
private var mCipher: Cipher? = null
と定義されています。
はなぜKotlinにおけるJavaコードの作品ですしないよう? 'initCipher'は' Boolean'を返しませんか? – mfulton26
問題は、KotlinがmCipherがnullチェックとinitCipherのアクセスの間で変更されている可能性があるとKotlinが不平を言うことです。 – Francesc
'initCipher'の署名を見るといいでしょう – voddan