Bla*_*ght 6 java generics android parcelable
我有一个带有泛型类型对象的parcelable类.通常我会读出这样的对象:
in.readParcelable(MyParcelableClass.class.getClassLoader())
Run Code Online (Sandbox Code Playgroud)
显然,我不能用泛型类型变量做到这一点..请参阅下面的代码.有人能指出我正确的方向吗?
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;
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
您可以像这样ClassLoader从泛型类型中获取T
this(in.readParcelable(parcelableTypeObject.getClass().getClassLoader()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |