【发布时间】:2019-11-29 13:06:08
【问题描述】:
public class DBqueries {
public static FirebaseFirestore firebaseFirestore = FirebaseFirestore.getInstance();
public static List<CategoryModel> categoryModelList = new ArrayList<>();
public static List<HomePageModel> homePageModelList = new ArrayList<>();
public static void loadCategories(final CategoryAdapter categoryAdapter, final Context context){
firebaseFirestore.collection("CATEGORIES").orderBy("index").get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()){
for (QueryDocumentSnapshot documentSnapshot : task.getResult()){
categoryModelList.add(new CategoryModel(documentSnapshot.get("icon").toString(),documentSnapshot.get("categoryName").toString()));
}
categoryAdapter.notifyDataSetChanged();
}else {
String error = task.getException().getMessage();
Toast.makeText(context, error, Toast.LENGTH_SHORT).show();
}
}
});
}
public static void loadFragmentData(final HomePageAdapter adapter, final Context context){
firebaseFirestore.collection("CATEGORIES")
.document("HOME")
.collection("TOP_DEALS").orderBy("index").get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()){
for (QueryDocumentSnapshot documentSnapshot : task.getResult()){
if ((long)documentSnapshot.get("view_type") == 0){
List<SliderModel> sliderModelList = new ArrayList<>();
long no_of_banners = (long) documentSnapshot.get("no_of_banners");
for (long x = 1;x < no_of_banners + 1;x++){
sliderModelList.add(new SliderModel((String) documentSnapshot.get("banner_"+x)
,documentSnapshot.get("banner_"+x+"_background").toString()));
}
homePageModelList.add(new HomePageModel(0,sliderModelList));
}else if ((long)documentSnapshot.get("view_type") == 1){
homePageModelList.add(new HomePageModel(1, (String) documentSnapshot.get("strip_ad_banner"),
documentSnapshot.get("background").toString()));
}else if ((long)documentSnapshot.get("view_type") == 2){
List<WishlistModel> viewAllProductList = new ArrayList<>();
List<HorizontalProductScrollModel> horizontalProductScrollModelList = new ArrayList<>();
long no_of_products = (long) documentSnapshot.get("no_of_products");
for (long x = 1;x < no_of_products + 1;x++){
horizontalProductScrollModelList.add(new HorizontalProductScrollModel(documentSnapshot.get("product_ID_"+x).toString()
,documentSnapshot.get("product_image_"+x).toString()
,documentSnapshot.get("product_title_"+x).toString()
,documentSnapshot.get("product_subtitle_"+x).toString()
,documentSnapshot.get("product_price_"+x).toString()));
viewAllProductList.add(new WishlistModel(documentSnapshot.get("product_image_"+x).toString()
,documentSnapshot.get("product_full_title_"+x).toString()
,(long)documentSnapshot.get("free_coupons_"+x)
,documentSnapshot.get("average_rating_"+x).toString()
,(long)documentSnapshot.get("total_ratings_"+x)
,documentSnapshot.get("product_price_"+x).toString()
,documentSnapshot.get("cutted_price_"+x).toString()
,(boolean)documentSnapshot.get("COD_"+x)));
}
homePageModelList.add(new HomePageModel(2,documentSnapshot.get("layout_title").toString()
,documentSnapshot.get("layout_background").toString(),
horizontalProductScrollModelList,viewAllProductList));
}else if ((long)documentSnapshot.get("view_type") == 3){
List<HorizontalProductScrollModel> gridLayoutModelList = new ArrayList<>();
long no_of_products = (long) documentSnapshot.get("no_of_products");
for (long x = 1;x < no_of_products + 1;x++){
gridLayoutModelList.add(new HorizontalProductScrollModel(documentSnapshot.get("product_ID_"+x).toString()
,documentSnapshot.get("product_image_"+x).toString()
,documentSnapshot.get("product_title_"+x).toString()
,documentSnapshot.get("product_subtitle_"+x).toString()
,documentSnapshot.get("product_price_"+x).toString()));
}
homePageModelList.add(new HomePageModel(3,documentSnapshot.get("layout_title").toString()
,documentSnapshot.get("layout_background").toString(),
gridLayoutModelList));
}
}
adapter.notifyDataSetChanged();
}else {
String error = task.getException().getMessage();
Toast.makeText(context, error, Toast.LENGTH_SHORT).show();
}
}
});
}
}
当我运行代码时,我得到了这个异常:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
还有其他方法可以转换结果吗?
【问题讨论】:
-
您是否阅读了错误信息?你了解什么是 ClassCastException 吗?你读过这个异常的javadoc吗?您是否阅读了异常附带的行号并指出了代码中引发此异常的确切行?
-
您可以在投射前使用 instance of 进行检查。
-
java.lang.ClassCastException: java.lang.String 无法在 com.shoppound.shoppound.DBqueries$2.onComplete(DBqueries.java:54) 处转换为 java.lang.Long
-
@DEKHOAURSIKHO 那么,DBqueries.java 的第 54 行是什么
-
@DEKHOAURSIKHO, please add your whole error stack trace在你的问题中,不是在这里
标签: java