未选中将java.io.Serializable强制转换为java.util.ArrayList
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了未选中将java.io.Serializable强制转换为java.util.ArrayList,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2114字,纯文字阅读大概需要4分钟。
内容图文
![未选中将java.io.Serializable强制转换为java.util.ArrayList](/upload/InfoBanner/zyjiaocheng/782/c579b3a9210b4668b16c4b78b98790cf.jpg)
请帮助,我收到以下消息,在我的以下代码中:
listaFinal = (ArrayList<PuntoNota>) getIntent().getSerializableExtra("miLista");
AdapterDatos adapter = new AdapterDatos(this, listaFinal);
PuntoNota.java
public class PuntoNota implements Serializable{
private String punto;
private String nota;
public PuntoNota (String punto, String nota){
this.punto = punto;
this.nota = nota;
}
public String getPunto(){
return punto;
}
public String getNota(){
return nota;
}
}
AdapterDatos:
public AdapterDatos(Context context, ArrayList<PuntoNota> puntoNotaList) {
this.context = context;
this.puntoNotaList = puntoNotaList;
}
该应用程序运行良好,但我收到以下消息:
Unchecked cast: ‘java.io.Serializable’ to ‘java.util.ArrayList ‘ less … (Ctrl + F1).
about this code: (ArrayList ) getIntent (). getSerializableExtra (“myList”); will it be advisable to delete or hide this message?
解决方法:
根本原因:这是来自IDE的警告,getSerializableExtra返回Serializable,并且您尝试转换为ArrayList< PuntoNota>.如果程序无法将其转换为您期望的类型,它可能会在运行时抛出ClassCastException.
解决方案:在android中传递用户定义的对象,你的类应该实现Parcelable而不是Serializable接口.
class PuntoNota implements Parcelable {
private String punto;
private String nota;
public PuntoNota(String punto, String nota) {
this.punto = punto;
this.nota = nota;
}
protected PuntoNota(Parcel in) {
punto = in.readString();
nota = in.readString();
}
public String getPunto() {
return punto;
}
public String getNota() {
return nota;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(punto);
dest.writeString(nota);
}
public static final Creator<PuntoNota> CREATOR = new Creator<PuntoNota>() {
@Override
public PuntoNota createFromParcel(Parcel in) {
return new PuntoNota(in);
}
@Override
public PuntoNota[] newArray(int size) {
return new PuntoNota[size];
}
};
}
在发送方
ArrayList<PuntoNota> myList = new ArrayList<>();
// Fill data to myList here
...
Intent intent = new Intent();
intent.putParcelableArrayListExtra("miLista", myList);
在接收方
ArrayList<? extends PuntoNota> listaFinal = getIntent().getParcelableArrayListExtra("miLista");
内容总结
以上是互联网集市为您收集整理的未选中将java.io.Serializable强制转换为java.util.ArrayList全部内容,希望文章能够帮你解决未选中将java.io.Serializable强制转换为java.util.ArrayList所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。