首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程“主”java.lang.NumberFormatException中的异常:基数482大于Character.MAX_RADIX

线程“主”java.lang.NumberFormatException中的异常:基数482大于Character.MAX_RADIX
EN

Stack Overflow用户
提问于 2014-04-07 22:25:42
回答 1查看 2.2K关注 0票数 0

最近我的比赛出了问题,这是:

代码语言:javascript
复制
@Override
public Tile getPlace(List args)
{
    return new CraftingTableTile(Integer.valueOf((String)args.get(0), 
    Integer.valueOf((String)args.get(1)).intValue()).intValue(), this.healthrep);
}

以及:

代码语言:javascript
复制
s.map[selectedx][selectedy] = s.mp.inven.i[s.mp.invsel].getPlace(args);

给出错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.NumberFormatException: radix 482 greater than Character.MAX_RADIX
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.valueOf(Unknown Source)
    at net.spideynn.miner2d.CraftingTableItem.getPlace(CraftingTableItem.java:21)
    at net.spideynn.miner2d.MainGame.mousePressed(MainGame.java:851)
    at org.newdawn.slick.Input.poll(Input.java:1217)
    at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:641)
    at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:411)
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:321)
    at net.spideynn.miner2d.MainGame.main(MainGame.java:2074)

有什么想法吗?

(如果答案很简单,我很抱歉,我找不到解决办法。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-07 22:38:06

您似乎试图将3个值传递到您的CraftingTableTile构造函数中,但是由于括号中的错误,您只传递了2个参数:

代码语言:javascript
复制
//             v This parenthesis...
Integer.valueOf((String)args.get(0),
// is balanced by this parenthesis                v
   Integer.valueOf((String)args.get(1)).intValue()).intValue()

代码语言:javascript
复制
this.healthrep

由于括号的混淆,两个参数被传递给Integer.valueOf,第二个参数被解释为基。异常来自于482大于可能的最大基数。

您可能打算传递以下三个参数:

代码语言:javascript
复制
Integer.valueOf((String)args.get(0))

代码语言:javascript
复制
Integer.valueOf((String)args.get(1)).intValue()

代码语言:javascript
复制
this.healthrep

如下所示:

代码语言:javascript
复制
return new CraftingTableTile(
    Integer.valueOf((String)args.get(0)),
    Integer.valueOf((String)args.get(1)).intValue(),
    this.healthrep);

顺便说一句,您的构造函数可能采用int,在这种情况下,您可以使用parseIntparseIntvalueOf之间唯一的区别是,parseInt返回intvalueOf返回Integer

代码语言:javascript
复制
return new CraftingTableTile(
    Integer.parseInt((String)args.get(0)),
    Integer.parseInt((String)args.get(1)),
    this.healthrep);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22924235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档