「Android/kotlin/基本」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→for) |
(→空やnull判定) |
||
| 行36: | 行36: | ||
} else { | } else { | ||
Log.i("exists", "not empty")// "hoge" | Log.i("exists", "not empty")// "hoge" | ||
| + | } | ||
| + | </pre> | ||
| + | |||
| + | ==lateinitとは== | ||
| + | インスタンスや変数が使われるタイミングで初期化するもの。nullが入らないように設計されたもの。DIとかでも使えそう。 | ||
| + | <pre> | ||
| + | class MainActivity : AppCompatActivity() { | ||
| + | lateinit var user: User | ||
| + | override fun onCreate(savedInstanceState: Bundle?) { | ||
| + | super.onCreate(savedInstanceState) | ||
| + | setContentView(R.layout.activity_main) | ||
| + | user.name = "taro" | ||
| + | Log.i("MainActivity", "user.name=" + user.name) | ||
| + | } | ||
} | } | ||
</pre> | </pre> | ||
2020年2月19日 (水) 14:47時点における版
null許可
var name: String = null // これだと入らない var title: String? = null // ?をつけるとnullが許可される
読み込みのみ
valを使う
val description = "hoge" description = "hoge2" // 許可されない
!!の意味
var nickname: String? = null
if (!TextUtils.isEmpty(nickname!!)) {
Log.i("test", nickname)
}
nullが入ってたときにkotlin.KotlinNullPointerExceptionを発生させる。
nullじゃない時の値
text1.setText(name ?: "hello");
型
Int // 数字 String // 文字 Boolean // 真偽 Array<String> // 文字配列 Unit // voidみたいなもの、Unitは省略可能
空やnull判定
var name: String? = null
if (TextUtils.isEmpty(name)) {
Log.i("exists", "empty") // "", null
} else {
Log.i("exists", "not empty")// "hoge"
}
lateinitとは
インスタンスや変数が使われるタイミングで初期化するもの。nullが入らないように設計されたもの。DIとかでも使えそう。
class MainActivity : AppCompatActivity() {
lateinit var user: User
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
user.name = "taro"
Log.i("MainActivity", "user.name=" + user.name)
}
}
