以下是我的hashmap。
private HashMap<String, Integer> details;
details = new HashMap<>();
details.put("coins", 0);
details.put("score", 0);
details.put("wins", 0);
以下是我的获取硬币方法
public int getCoinCount() {
if(details == null)
return 0;
return details.get("coins").intValue();
}
现在,当我运行这个时,我得到一个ClassCastException
。以下是调用它的代码。
int coins = MyClass.getInstance().getCoinCount();
它说我不能把长整数投入一个整数!从来没有注意到这种类型!怎么回事?
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
at game.drew.com.respy.User.User.getCoinCount(RespyUser.java:78)
at game.drew.com.game.Gameplay.ProfileFragment.onCreateView(ProfileFragment.java:226)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
答案 0 :(得分:-2)
我希望你的堆栈跟踪可以让我更多地离开,不幸的是我和你一样困惑。这不是对您的问题的正确解决方法,但由于您将值放在class InReader(permissions.IsAuthenticated):
def has_object_permission(self, request, view, obj):
return request.user in obj.reading
和HashMap
之内,因此最好更改Integer
以返回getCoinCount
1}}并将Integer
设置为coins
。
过去当我从Integer
获得原始值时,我通常最终会将其检索为Integer
。