質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

2回答

9276閲覧

kotlinコロン二連続の記法について

hood

総合スコア351

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

1クリップ

投稿2019/01/04 14:01

###kotlinコロン二連続の記法について
kotlinの勉強のためコードを見ていたら、以下のようなものに出くわしました。

kotlin

1val viewModel = ViewModelProviders.of(this) 2 .get(MainViewModel::class.java)

それで、このMainViewModel::class.javaにあるコロン二連続の部分で、ん?っとなりました。

私は以前からandroidアプリの開発をしているので、なんとなくこれがMainViewModelcontextを示しているのはわかります。
ですが、この記法を論理的に説明しようとすると、どうにも上手くいきません。
一応「kotlinコロン二連続」などでググったのですが、説明はありませんでした。

これは一体どういう記法なのでしょうか?
記法名みたいなものがついていたら、教えていただけるとありがたいです・・・!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

KotlinにおけるMainViewModel::class.javaはJavaにおけるMainViewModel.classですね。
これはリフレクションという実行時にプログラム自身の構造の情報を取得・操作できる仕組みです。
::classという記法によりKClass型のインスタンスを取得し、さらに.javaでJavaのクラスオブジェクトを取得しています。
和訳はされていないのですが公式のリファレンスがあるのでこちらが役立つのではないかと思います。
ちなみに上の例で渡しているクラスオブジェクトはViewModelのインスタンスが存在しない場合に、新しいViewModelを作成するために用いるViewModelのクラスオブジェクトのようですね。

投稿2019/01/04 16:23

kei1224

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hood

2019/01/05 01:59

回答ありがとうございます! とても丁寧な説明ありがとうございました!
guest

0

公式ドキュメントではJava Reflectionという名前があります。

投稿2019/01/04 16:06

nakasho_dev

総合スコア2655

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hood

2019/01/05 02:00

回答ありがとうございます! 公式ドキュメント、よく読みこんでいきたいと思います!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問