私は次のクラスを持っています:
public class DetailedProduct implements Serializable {
//attributes + get and set
private Colour colour;
//get+set
public class Colour implements Serializable{
private ArrayList<Image> images;
//get+set
public Image[] getImages() {
return images.toArray(new Image[images.size()]);
}
}
public class Image implements Serializable{
private static final long serialVersionUID = 3460333138445770749L;
private String image1;
private String image2;
private String image3;
//get/set methods
}
}
その後、次のようにインテントを作成しました
DetailedProduct.Colour mCurrentColour;
Intent myIntent = new Intent(DetailsActivity.this, ImageGallery.class);
myIntent.putExtra("Images", mCurrentColour.getImages());
startActivity(myIntent);
ImageGallery クラスで、次のコードを試しました。
Serializable extras = getIntent().getSerializableExtra("Images");
if (extras != null) {
images = (Image[]) extras;
}
しかし、私は次の例外を取ります: java.lang.RuntimeException: Unable to start activity ComponentInfo{com./com.productdetails.ProductImageGallery}: java.lang.ClassCastException: java.lang.Object[] cannot be cast to com. productdetails.DetailedProduct$Image[]
シリアル化可能を画像の配列に正しくキャストするにはどうすればよいですか