Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为数字对象实现Parcelable时的ClassCastException_Java_Android - Fatal编程技术网

Java 为数字对象实现Parcelable时的ClassCastException

Java 为数字对象实现Parcelable时的ClassCastException,java,android,Java,Android,我正在调用MovieDatabase API,它返回的一个对象是数字,请参阅文档 我正在我的电影对象类中实现parcelable,目前正在尝试相应地读写: 阅读 写 我在尝试实现以下功能时收到ClassCastException: java.lang.ClassCastException: com.google.gson.internal.LazilyParsedNumber cannot be cast to java.lang.Integer at popularmovies

我正在调用MovieDatabase API,它返回的一个对象是数字,请参阅文档

我正在我的电影对象类中实现parcelable,目前正在尝试相应地读写:

阅读

我在尝试实现以下功能时收到ClassCastException:

java.lang.ClassCastException: com.google.gson.internal.LazilyParsedNumber cannot be cast to java.lang.Integer
        at popularmovies.troychuinard.com.popularmovies.Model.Movie.writeToParcel(Movie.java:204)
        at android.os.Parcel.writeParcelable(Parcel.java:1496)
        at android.os.Parcel.writeValue(Parcel.java:1402)
        at android.os.Parcel.writeArrayMapInternal(Parcel.java:724)
        at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1408)
        at android.os.Bundle.writeToParcel(Bundle.java:1157)
        at android.os.Parcel.writeBundle(Parcel.java:764)
        at android.content.Intent.writeToParcel(Intent.java:8687)
        at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3082)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1518)
        at android.app.Activity.startActivityForResult(Activity.java:4225)
        at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
        at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:68)
        at android.app.Activity.startActivityForResult(Activity.java:4183)
        at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:751)
        at android.app.Activity.startActivity(Activity.java:4522)
        at android.app.Activity.startActivity(Activity.java:4490)
        at popularmovies.troychuinard.com.popularmovies.MainActivity$MyAdapter$1.onClick(MainActivity.java:202)
        at android.view.View.performClick(View.java:5637)
        at android.view.View$PerformClick.run(View.java:22429)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
更新

以下是具体的一行:

parcel.writeInt((Integer) vote_average);
尝试使用:

parcel.writeInt(vote_average.intValue());

由于错误表示无法将LazlyParsedNumber解析为整数,因此它必须是基于的对象。这个类提供了方法intValue(),如果您的
vote\u average
变量是一个
lazlyparsednumber
,则该方法将返回一个int.

,然后您需要对该变量调用
intValue()
,以获得一个int


vote_average.intValue()

204行是什么?这是我写的一行,输入为Intok,哪种类型是
vote\u average
parcel.writeInt((Integer) vote_average);
parcel.writeInt(vote_average.intValue());