请教,这个方法一般是什么情况会导致出现这种异常

时间:2022-02-12 16:22:37

在调用下面方法时,抛出:java.lang.String incompatible with java.lang.Integer

public int getInt(String key)
{
        Object obj = datamap.get(key);
        
        if(obj!=null)
        {
         return Integer.parseInt(obj.toString());
        }
        return 0;
}

16 个解决方案

#1


输入的字符串不是整数的时候

#2


你是使用String str = getInt(...)写法吧这样肯定不对啊

#3


引用楼主 jafapple 的回复:
在调用下面方法时,抛出:java.lang.String incompatible with java.lang.Integer

 public int getInt(String key)
 {
         Object obj = datamap.get(key);

         if(obj!=null)
         {
          return Integer.parseInt(obj.toString());
         }
         return 0;
 }



不是整数的时候,报的错误应该是:java.lang.NumberFormatException: For input string: "你输入的字符串"

#4


引用 1 楼 hytdsky 的回复:
输入的字符串不是整数的时候


兄弟,这低级的错误,我就是不懂这样写了,Eclipse的编辑器都会通不过的啊。


我写的是 int a = getInt("123");

另外之个方法在两台机器上运行,其中一台是正确的,另外一台XP SP3的运行就是提示这样的错误。

#5


这个你要贴怎么调的,那段代码

#6


引用 4 楼 jafapple 的回复:
引用 1 楼 hytdsky 的回复:


 我写的是 int a = getInt("123");

 另外之个方法在两台机器上运行, 其中一台是正确的,另外一台XP SP3的运行就是提示这样的错误

这个,也太神奇了吧。

#7


引用 5 楼 dollyn 的回复:
这个你要贴怎么调的,那段代码


这个本来是一个就简单的方法,没什么技巧性的代码。

我就是只用了一个int a = getInt(...)。 这代码目前为止在企业内部上百台机器经过有1年的时间运行过了,都没有问题,今天在这台XP SP3上就出现这样的问题,写了2年的Java代码,遇到的异常也不少,但还没遇到过这种异常,这里上不了Google查不了资料,CSDN和JavaEye也没有这种异常的说明,所以很奇怪,上来发帖问一下强人们是否遇到过这种异常,有可能是什么情况导致的。

#8


引用 4 楼 jafapple 的回复:
引用 1 楼 hytdsky 的回复:
输入的字符串不是整数的时候


兄弟,这低级的错误,我就是不懂这样写了,Eclipse的编辑器都会通不过的啊。


我写的是 int a = getInt("123");

另外之个方法在两台机器上运行,其中一台是正确的,另外一台XP SP3的运行就是提示这样的错误。

人家说的整数是指字符串内容是整数像“123”  而不是整Integer类型
你是不是输入了类似“12a” 或者“12.3” 之类的啊

#9


引用 8 楼 lgm277531070 的回复:
引用 4 楼 jafapple 的回复:
 引用 1 楼 hytdsky 的回复:
 输入的字符串不是整数的时候


 兄弟,这低级的错误,我就是不懂这样写了,Eclipse的编辑器都会通不过的啊。


 我写的是 int a = getInt("123");

 另外之个方法在两台机器上运行,其中一台是正确的,另外一台XP SP3的运行就是提示这样的错误。

 人家说的整数是指字符串内容是整数像“123”  而不是整Integer类型
 你是不是输入了类似“12a” 或者“12.3” 之类的啊


不是,你说的这种,前面兄弟说过了,但输入这种是百分百要出错的,异常信息是:java.lang.NumberFormatException: For input string: 。。。。

#10


我的异常是:java.lang.String incompatible with java.lang.Integer 

#11


应该是你的jdk版本不对吧

#12


引用 11 楼 lryxxh 的回复:
应该是你的jdk版本不对吧

所有的机器JDK都是一样,从同一个安装源统一安装的JDK1.5

#13


在写Integer.parseInt(obj.toString()); 这句话时你应该try,chatch一下,就万事大吉了,这段代码还是挺危险的。

#14


帮顶!!!!!!!!!

#15


Integer:可以为NULL
int : 不可以为NULL

#16


你的字符串是1,2,3等数字应该是没问题,不过要是a,b等字母就不一定了,你把代码弄的这么麻烦不就是要返回一个int类型的数吗,那你还不如把参数设置成int的哪

#1


输入的字符串不是整数的时候

#2


你是使用String str = getInt(...)写法吧这样肯定不对啊

#3


引用楼主 jafapple 的回复:
在调用下面方法时,抛出:java.lang.String incompatible with java.lang.Integer

 public int getInt(String key)
 {
         Object obj = datamap.get(key);

         if(obj!=null)
         {
          return Integer.parseInt(obj.toString());
         }
         return 0;
 }



不是整数的时候,报的错误应该是:java.lang.NumberFormatException: For input string: "你输入的字符串"

#4


引用 1 楼 hytdsky 的回复:
输入的字符串不是整数的时候


兄弟,这低级的错误,我就是不懂这样写了,Eclipse的编辑器都会通不过的啊。


我写的是 int a = getInt("123");

另外之个方法在两台机器上运行,其中一台是正确的,另外一台XP SP3的运行就是提示这样的错误。

#5


这个你要贴怎么调的,那段代码

#6


引用 4 楼 jafapple 的回复:
引用 1 楼 hytdsky 的回复:


 我写的是 int a = getInt("123");

 另外之个方法在两台机器上运行, 其中一台是正确的,另外一台XP SP3的运行就是提示这样的错误

这个,也太神奇了吧。

#7


引用 5 楼 dollyn 的回复:
这个你要贴怎么调的,那段代码


这个本来是一个就简单的方法,没什么技巧性的代码。

我就是只用了一个int a = getInt(...)。 这代码目前为止在企业内部上百台机器经过有1年的时间运行过了,都没有问题,今天在这台XP SP3上就出现这样的问题,写了2年的Java代码,遇到的异常也不少,但还没遇到过这种异常,这里上不了Google查不了资料,CSDN和JavaEye也没有这种异常的说明,所以很奇怪,上来发帖问一下强人们是否遇到过这种异常,有可能是什么情况导致的。

#8


引用 4 楼 jafapple 的回复:
引用 1 楼 hytdsky 的回复:
输入的字符串不是整数的时候


兄弟,这低级的错误,我就是不懂这样写了,Eclipse的编辑器都会通不过的啊。


我写的是 int a = getInt("123");

另外之个方法在两台机器上运行,其中一台是正确的,另外一台XP SP3的运行就是提示这样的错误。

人家说的整数是指字符串内容是整数像“123”  而不是整Integer类型
你是不是输入了类似“12a” 或者“12.3” 之类的啊

#9


引用 8 楼 lgm277531070 的回复:
引用 4 楼 jafapple 的回复:
 引用 1 楼 hytdsky 的回复:
 输入的字符串不是整数的时候


 兄弟,这低级的错误,我就是不懂这样写了,Eclipse的编辑器都会通不过的啊。


 我写的是 int a = getInt("123");

 另外之个方法在两台机器上运行,其中一台是正确的,另外一台XP SP3的运行就是提示这样的错误。

 人家说的整数是指字符串内容是整数像“123”  而不是整Integer类型
 你是不是输入了类似“12a” 或者“12.3” 之类的啊


不是,你说的这种,前面兄弟说过了,但输入这种是百分百要出错的,异常信息是:java.lang.NumberFormatException: For input string: 。。。。

#10


我的异常是:java.lang.String incompatible with java.lang.Integer 

#11


应该是你的jdk版本不对吧

#12


引用 11 楼 lryxxh 的回复:
应该是你的jdk版本不对吧

所有的机器JDK都是一样,从同一个安装源统一安装的JDK1.5

#13


在写Integer.parseInt(obj.toString()); 这句话时你应该try,chatch一下,就万事大吉了,这段代码还是挺危险的。

#14


帮顶!!!!!!!!!

#15


Integer:可以为NULL
int : 不可以为NULL

#16


你的字符串是1,2,3等数字应该是没问题,不过要是a,b等字母就不一定了,你把代码弄的这么麻烦不就是要返回一个int类型的数吗,那你还不如把参数设置成int的哪