未经检查的强制转换:'java.io.Serializable'为'java.util.ArrayList “
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未经检查的强制转换:'java.io.Serializable'为'java.util.ArrayList “相关的知识,希望对你有一定的参考价值。
我得到一个未经检查的投射警告,我不确定是否可以安全地压制它。
我在ArrayList<Fragment>
里面放了一个Bundle
。然后将此Bundle放入我的Intent中,如下所示:
Intent mIntent = new Intent(getBaseContext(),MySecondActivity.class);
Bundle myBundle = new Bundle();
myBundle.putSerializable("fragmentList",ArrayList<Fragment>);
mIntent.putExtras(myBundle);
startActivity(mIntent);
然后在我的新活动(MySecondActivity)上,我使用以下代码检索此数据:
(ArrayList<Fragment>) getIntent().getSerializableExtra("fragmentList")
我的编译器给了我以下警告:
“未经检查的强制转换:'java.io.Serializable'为'java.util.ArrayList'”
一切都工作正常,我说得对,我可以安全地压制它吗?
谢谢!
片段不是可序列化的,对于片段的ArrayLists也是如此。所以,putSerializable
在这方面是行不通的。即使它们是可序列化的,您仍然需要正确使用该方法。就像是:
ArrayList<Fragment> fragmentArrayList = new ArrayList<Fragment>();
fragmentList.add(foo);
...
myBundle.putSerializable("fragmentList", fragmentArrayList); //not ArrayList<Fragment>
而是尝试,
- 有
MySecondActivity
创建这些你想在onCreate
传递给它的片段 - 将要传递的数据类放置到该意图的包中的
MySecondActivity
,但实现Parcelable
,因为它比Serializable更快/更好
对于第二步,here is a tutorial关于使您的数据类实现Parcelable
HTHS!
以上是关于未经检查的强制转换:'java.io.Serializable'为'java.util.ArrayList “的主要内容,如果未能解决你的问题,请参考以下文章
未经检查的强制转换:尝试在同一方法中将 Int 或 String 强制转换为 T(泛型类型)
Servlet ArrayList 到 JSP(从 Object 到 ArrayList 的未经检查的强制转换)
类型安全:从 Object 到 List<MyObject> 的未经检查的强制转换
Kotlin:如何使用列表强制转换:未经检查的强制转换:kotlin.collections.List<Kotlin.Any?> 到 kotlin.colletions.List<W