Java 如何将intent的额外对象[]强制转换为MyClas[]
我有这个密码Java 如何将intent的额外对象[]强制转换为MyClas[],java,android,serialization,casting,parcelable,Java,Android,Serialization,Casting,Parcelable,我有这个密码 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.offers_list); Intent callingIntent = getIntent(); if (callingIntent != null) { Bundle extras = callingIntent
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.offers_list);
Intent callingIntent = getIntent();
if (callingIntent != null) {
Bundle extras = callingIntent.getExtras();
if (extras != null) {
Offer[] offers = (Offer[]) extras
.getSerializable(PublicMacros.OFFERS_LIST);
}
}
我在执行后得到这个错误
02-19 01:59:52.291:E/AndroidRuntime26440:原因:java.lang.ClassCastException:java.lang.Object[]无法强制转换为com.zoomer.offers.Offer[]
如何正确地强制转换?不可能将对象[]强制转换为t[],其中t是一个abitrary类 但是你可以用
Offer[] array = Arrays.copyOf(a, a.length, Offer[].class);
其中a是从中返回的数组
extras.getSerializable(PublicMacros.OFFERS_LIST);
或者,您可以迭代数组中的每个元素,并将每个元素转换为自己的元素。检查。将Offer[]从一个活动发送到另一个活动的最佳做法是什么?活动是什么意思?android的活动。我想将数据从一个活动发送到另一个活动