Java 可打包的泛型和字符串

Java 可打包的泛型和字符串,java,android,string,generics,parcelable,Java,Android,String,Generics,Parcelable,我希望将通用类打包。 看起来很容易。使用一个元组作为一个简单的例子(只是一个例子,不要评论这个特定的类,我的一些将来自库),我可以扩展我所拥有的: public class Pair<O1, O2> implements Serializable { public O1 first; public O2 second; public Pair(O1 first, O2 second){ this.first = first; t

我希望将通用类打包。
看起来很容易。使用一个元组作为一个简单的例子(只是一个例子,不要评论这个特定的类,我的一些将来自库),我可以扩展我所拥有的:

public class Pair<O1, O2> implements Serializable {
    public O1 first;
    public O2 second;
    public Pair(O1 first, O2 second){
        this.first = first;
        this.second = second;
    }
}
公共类对实现可序列化{
公共O1优先;
公共卫生服务第二;
公共对(O1第一,O2第二){
this.first=first;
这个秒=秒;
}
}
并使之:

public class PPair<O1 extends Parcelable, O2 extends Parcelable> extends Pair<O1, O2>
        implements Serializable, Parcelable {
    public O1 first;
    public O2 second;
    public PPair(O1 first, O2 second){
        super(first, second);
    }
    // Parcelable stuff
    public PPair(Parcel in){
        super((O1)in.readParcelable(null), (O2)in.readParcelable(null));
    }
    @Override
    public int describeContents(){
        return 0;
    }
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeParcelable(first, flags);
        dest.writeParcelable(second, flags);
    }
    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
        public PPair createFromParcel(Parcel in) {
            return new PPair(in); 
        }
        public PPair[] newArray(int size) {
            return new PPair[size];
        }
    };
}
公共类PPair扩展对
实现可序列化、可打包{
公共O1优先;
公共卫生服务第二;
公共PPair(O1优先,O2第二){
超级(第一,第二);
}
//可包裹的东西
公共PPair(包裹内){
超级((O1)英寸可读取密码(null),(O2)英寸可读取密码(null));
}
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
目的地可写可强制(首先是标志);
目的地可写可强制(第二,标志);
}
public static final Parcelable.Creator=新建Parcelable.Creator(){
公共PPair createFromParcel(地块位于){
返回新的PPair(in);
}
公共PPair[]新数组(整数大小){
返回新的PPair[大小];
}
};
}
但是,虽然我可以使用
PPair
,但它对
PPair
不起作用
有人忘了将字符串类打包。

扩展字符串,添加简单的可打包性,只是为了在可打包的泛型类中使用,这似乎很可笑。
类似地,如果其他人要使用我的类,则从参数中删除
扩展包
(并依赖
内部的
instanceof
等)似乎不是一个好主意。

有没有更好的方法让类同时接受String和any Parcelable,并且至少在与其他任何东西一起使用时发出警告?

似乎可以通过减少泛型部分并关注希望
String
成为
Parcelable
@PaulBellora的问题来简化问题,听起来很粗鲁。不,问题是我正在寻找上述所有方面的最佳解决方案:泛型、可封装性和字符串。泛型类来自库。我想把它们放在碎片之间,所以我把它们包装起来。但通常情况下,它们会使用字符串。