【发布时间】:2011-02-20 12:38:49
【问题描述】:
我正在使用 Java 泛型进行学习,并尝试对它们使用反射。 在我认为我理解了一半的同时,我遇到了我没有找到解决方法的问题。 我有一个简单的 Box 类:
public class ReflectionBox<E> {
protected E e;
public ReflectionBox(){}
public ReflectionBox(E element){ this.e = element; }
public void set(E element){ e = element; }
public E get(){ return e; }
//... a few reflection methods...
}
我扩展了这个类来尝试用它实现一个接口。这个接口迫使我写这样的语句:
public static final Parcelable.Creator<ParcelableBox<?>> CREATOR =
new Parcelable.Creator<ParcelableBox<?>>() {
@Override
public ParcelableBox<?> createFromParcel(Parcel source) {
return new ParcelableBox<Object>(source);
}
}
是否可以使用反射从? 获取类信息?我不能在上面使用Object 的方法来反映放入了哪个类,也不能实例化new ParcelableBox<?>(? element)。包裹不是E 应该是的类,但我的类是
在那个包裹中,应该是? 的类。
编辑:
嗨,感谢所有答案:由于许多用户不明白,我正在尝试做什么:
有一个接口Parcelable,我认为它可以用作数据流,您可以在其中放置对象成员。您使用 parcel.writeString(String string) 或 parcel.writeValue(Object value) 之类的东西来存储,parcel.readValue 与您放入的方向相同。为了学习,我想将其实现为通用的。所以我希望能够存储到包裹,并使用反射从中读取。
因为 CREATOR 是静态的,所以我不能使用 E。
【问题讨论】:
标签: java android generics reflection