类型参数不在预期范围内:Parcelable 找到:String

Type argument is not within its bounds Expected: Parcelable Found: String

我正在创建一个通用的、抽象的 class,如下所示:

abstract class BaseDialogFragment<T: Parcelable> : DialogFragment()

尝试将此 class 实现为

class MyDialogFragment : BaseDialogFragment<String>()

给我

Type argument is not within its bounds Expected: Parcelable Found: String

对于 BaseDialogFragment<String>() 中的字符串。

那么,如何使用 String 作为 T 的值?如果我希望 T 成为可打包类型,我的条件 T: Parcelable 是否有问题?

So, how can I use String as a value for T?

你不能。 String 不是 Parcelable,因为 Parcel 已经知道如何处理 String。同样,您不能将 ByteArray 用于 TIntBoolean