「Android/kotlin/javaからkotlinへの変換」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「 ==javaからkotlinへの変換== #MainActivity.javaを開いた状態で、codeの"Convert Java File to Kotlin File"を選択 #MainActivity.javaがMainActivity.ktへ変...」) |
|||
| (同じ利用者による、間の4版が非表示) | |||
| 行1: | 行1: | ||
| − | == | + | ==androidstudioでjavaからkotlinへの変換== |
#MainActivity.javaを開いた状態で、codeの"Convert Java File to Kotlin File"を選択 | #MainActivity.javaを開いた状態で、codeの"Convert Java File to Kotlin File"を選択 | ||
#MainActivity.javaがMainActivity.ktへ変更され、コードもkotlinとなる | #MainActivity.javaがMainActivity.ktへ変更され、コードもkotlinとなる | ||
| 行15: | 行15: | ||
後 | 後 | ||
<pre> | <pre> | ||
| − | var bytesRead : Int | + | var bytesRead: Int |
do { | do { | ||
bytesRead = dataInputStream.read(buffer) | bytesRead = dataInputStream.read(buffer) | ||
| 行25: | 行25: | ||
参考:https://discuss.kotlinlang.org/t/assignment-not-allow-in-while-expression/339 | 参考:https://discuss.kotlinlang.org/t/assignment-not-allow-in-while-expression/339 | ||
| + | |||
| + | =="Platform declaration clash: The following declarations have the same JVM signature"エラー== | ||
| + | publicプロパティはsetterが自動でつき、名前がかぶるため。 | ||
| + | |||
| + | 前 | ||
| + | <pre> | ||
| + | class HogeClass { | ||
| + | companion object { | ||
| + | var name = "" | ||
| + | fun setName(name: String) { | ||
| + | this.name = name | ||
| + | } | ||
| + | fun getName(): String { | ||
| + | return this.name | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </pre> | ||
| + | 後 | ||
| + | <pre> | ||
| + | class HogeClass { | ||
| + | companion object { | ||
| + | private var name = "" | ||
| + | fun setName(name: String) { | ||
| + | this.name = name | ||
| + | } | ||
| + | fun getName(): String { | ||
| + | return this.name | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </pre> | ||
| + | プロパティにprivateをつければ良い。 | ||
| + | |||
| + | =="type mismatch prequired string found string?"エラーの場合== | ||
| + | 前 | ||
| + | Log.e(TAG, ex.message) | ||
| + | 後 | ||
| + | ex.message?.let { Log.e(TAG, it) } | ||
2020年2月17日 (月) 16:33時点における最新版
目次
androidstudioでjavaからkotlinへの変換
- MainActivity.javaを開いた状態で、codeの"Convert Java File to Kotlin File"を選択
- MainActivity.javaがMainActivity.ktへ変更され、コードもkotlinとなる
- GradleにKotlinを認識させるために、Tool/Kotlin/ConfigureKotlinInProjectを選択
"Assignments are not expressions, and only expressions are allowed in this context"エラーの時
前
var bytesRead: Int
while ((bytesRead = dataInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead)
}
後
var bytesRead: Int
do {
bytesRead = dataInputStream.read(buffer)
if (bytesRead == -1)
break
outputStream.write(buffer, 0, bytesRead)
} while (true)
参考:https://discuss.kotlinlang.org/t/assignment-not-allow-in-while-expression/339
"Platform declaration clash: The following declarations have the same JVM signature"エラー
publicプロパティはsetterが自動でつき、名前がかぶるため。
前
class HogeClass {
companion object {
var name = ""
fun setName(name: String) {
this.name = name
}
fun getName(): String {
return this.name
}
}
}
後
class HogeClass {
companion object {
private var name = ""
fun setName(name: String) {
this.name = name
}
fun getName(): String {
return this.name
}
}
}
プロパティにprivateをつければ良い。
"type mismatch prequired string found string?"エラーの場合
前
Log.e(TAG, ex.message)
後
ex.message?.let { Log.e(TAG, it) }
