gpt4 book ai didi

java - 如何从类型变量中获取 ClassLoader(用于使用泛型打包类)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:44:11 26 4
gpt4 key购买 nike

我有一个带有通用类型对象的可打包类。通常我会像这样读出那个对象:

in.readParcelable(MyParcelableClass.class.getClassLoader())

显然我不能用通用类型变量来做到这一点。请参阅下面的代码。谁能指出我正确的方向?

public class ParcelableOverlayItem<T extends Parcelable> extends OverlayItem implements Parcelable {

private T parcelableTypeObject;

protected ParcelableOverlayItem(Parcel in) {
this(in.readParcelable(T.class.getClassLoader())); // this is not working: "Cannot select from a type variable"
}

public void writeToParcel(Parcel dest, int flags) {
dest.writeParcelable(parcelableTypeObject, flags);
}

public ParcelableOverlayItem(T parcelableTypeObject) {
super();
this.parcelableTypeObject = parcelableTypeObject;
}

public T getParcelableTypeObject() {
return parcelableTypeObject;
}

// ...
}

最佳答案

你可以像这样从泛型T获取ClassLoader

this(in.readParcelable(parcelableTypeObject.getClass().getClassLoader()));

关于java - 如何从类型变量中获取 ClassLoader(用于使用泛型打包类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22041519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com