Java 为什么android要将我的基类转换为it';当我把它作为额外的时,它是什么父类?

Java 为什么android要将我的基类转换为it';当我把它作为额外的时,它是什么父类?,java,android,serialization,Java,Android,Serialization,我有一个类可以帮助我节省时间,所以我不必总是写很长的类名: public class ImageBucket extends ArrayList<LoadableGeoLocationImage> implements Serializable{ private static final long serialVersionUID = -4275196266297013629L; public ImageBucket() {} public ImageBu

我有一个类可以帮助我节省时间,所以我不必总是写很长的类名:

public class ImageBucket extends ArrayList<LoadableGeoLocationImage> implements Serializable{
    private static final long serialVersionUID = -4275196266297013629L;

    public ImageBucket() {}

    public ImageBucket(Collection<? extends LoadableGeoLocationImage> collection) {
        super(collection);
    }

    public ImageBucket(int capacity) {
        super(capacity);
    }

    public ImageBucket(ImageBucket ... buckets){
        super();

        for(ImageBucket bucket: buckets){
            this.addAll(bucket);
        }
    }
}
但当我试图获取数据时,我得到了一个ClassCastException:

    Serializable seriImgBucket = this.getIntent().getExtras().getSerializable(INTENT_ARG_IMAGES);
    System.err.println(seriImgBucket.getClass().getName()); //Prints: ....ArrayList

    this.images = (ImageBucket) seriImgBucket;

为什么android会返回我的基类而不是我添加到附加类中的基类?我如何修复它?

在我看来,通过这段代码

Serializable seriImgBucket = this.getIntent().getExtras().getSerializable(INTENT_ARG_IMAGES);
ImageBucket类已被强制转换为其超类,此过程不可逆。 所以,我建议你这样修改它

ImageBucket seriImgBucket = this.getIntent().getExtras().getSerializable(INTENT_ARG_IMAGES);

此外,它还可以帮助您保存一些代码!祝你好运

@Squonk。毫无意义的建议。将要发生的是ClassCastException。我是这样做的,在我得到ClassCastException之后,我更改了代码,就像现在在答案中一样,以打印实际的类名。
ImageBucket seriImgBucket = this.getIntent().getExtras().getSerializable(INTENT_ARG_IMAGES);