Java 使用包裹发送未知数据类型的对象时出现问题

Java 使用包裹发送未知数据类型的对象时出现问题,java,android,parcelable,Java,Android,Parcelable,前几天我问了一个问题,关于将意图作为包裹发送到活动,但我不确定在我的情况下如何发送。我有一个objectobjectx类型的变量设置如下:x=edit.getText().toString()

前几天我问了一个问题,关于将意图作为包裹发送到活动,但我不确定在我的情况下如何发送。我有一个object
objectx类型的变量设置如下:
x=edit.getText().toString()
流量为:

对象x-已创建

x=String对象| | Integer对象| | sqldate对象
-x被赋值


i.putExtra(“对象”,x)-x在打包后被发送到下一个活动。

对传递到inn的数据的要求是,它可以以某种方式序列化,是的,
String
Integer
都可以。此外,如果您正在使用,则此类型将继承,而该类型又将继承。轻微的“问题”是
Intent.putExtra
没有将
对象
作为参数类型的重载。因此,您必须“知道”要放置的数据类型:

if (goingToUseStringObject...)
{
    // use the CharSequence overload
    i.putExtra("object", stringObject);
}
else if (goingToUseIntegerObject...)
{
    // use the int overload
    i.putExtra("object", integerObject);
}
else if (goingToUseDateObject...)
{
    // use the Serializable overload
    i.putExtra("object", dateObject);
}

与其让
对象
引用可以是其他三种不同的数据类型之一,我建议创建一个包装器类,实现为您存储数据的
Parcelable
。如果您经常传递这些数据,这将使您的生活更加简单。

我在某个地方读到过一篇文章,其中有相当大的开销,您认为值得将日期对象作为字符串发送,然后在下一个活动中重新转换它吗?我只需要存储dd/MM/yyyy,这样我就不会为失去时间而烦恼。@SamRowley-我不知道它是否有那么大。但是可以肯定的是,仅序列化您需要的内容肯定是最快的选择。但是,对于所有与性能相关的问题,不要进行预优化。如果测试显示存在巨大差异,那么就去做吧。如果没有,请做最简单的事情。谢谢你花时间回答我的问题。