2017-04-20 12 views
1

次のコードスニペットを使用して、AndroidベースのFirebaseデータベースから値を取得しています。コードは機能していますが、なぜ私がGenericTypeindicatorを使用する必要があるのか​​誰にもわかりません。Firebase androidからデータを取得する際のGenericTypeindicatorの使用

dbRef.addValueEventListener(){ 
    public void onDataChange(DataSnapshot ds) { 
    GenericTypeIndicator<Map<String, String>> gType = new GenericTypeIndicator<Map<String, String>>() { 
    }; 
    Map<String, String> myMap = ds.getValue(gType); 
    } 
} 

任意の助けいただければ幸い:)

答えて

3

クラスのドキュメントは、あなたがそれを使用する必要が理由として説明するためのかなり良い仕事をしていません。

https://www.firebase.com/docs/java-api/javadoc/com/firebase/client/GenericTypeIndicator.html

により、Javaがジェネリック(タイプ-消去)を実装する方法に、適切に実行時にジェネリックコレクションの種類を解決するために、もう少し複雑な方法を使用する必要があります。この問題を解決するために、FirebaseはgetValue(DataSnapshot.getValue(GenericTypeIndicator)、MutableData.getValue(GenericTypeIndicator))の呼び出しでこのクラスのサブクラスを受け取り、適切に型付けされた汎用コレクションを返します

関連する問題