GVKun编程网logo

异常解决:swagger2.9.2 报java.lang.NumberFormatException: For input string: ““...(java报错for input string)

10

对于异常解决:swagger2.9.2报java.lang.NumberFormatException:Forinputstring:““...感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲

对于异常解决:swagger2.9.2 报java.lang.NumberFormatException: For input string: ““...感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解java报错for input string,并且为您提供关于"xception in thread "main" java.lang.NumberFormatException: For input string: "20、Android开发build出现java.lang.NumberFormatException: For input string: "tle 0x7f0800aa"错误的解决方案、Caused by: java.lang.NumberFormatException: For input string: "18446744073709551615"、Error querying database. Cause: java.lang.NumberFormatException: For input string: xx的宝贵知识。

本文目录一览:

异常解决:swagger2.9.2 报java.lang.NumberFormatException: For input string: ““...(java报错for input string)

异常解决:swagger2.9.2 报java.lang.NumberFormatException: For input string: ““...(java报错for input string)

swagger2.9.2 报java.lang.NumberFormatException: For input string: ““...


springfox-swagger 2.9.2 内置的swagger-models1.5.20 会引起Long类型格式转换异常,报错如下

java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_181] at java.lang.Long.parseLong(Long.java:601) ~[na:1.8.0_181] at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0_181] at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]

这段报错的意思是,在将空串"",转换为Long类型时出现异常

解决方法一

对Long类型上的参数或属性上使用swagger注解时,指定example的值为数值型,比如

@ApiModelProperty(value = "公园",example="1", required = true)private Long parkId;

具体原因:

项目中很多地方都使用了swagger注解,但对Long类型添加注解时未指定example值,比如

//-------某个字段是Long类型的 这里未指定example的值,默认是空串 "" @ApiModelProperty(value = "公园", required = true) private Long parkId;

进入AbstractSerializableParameter类查看 getExample()方法
@JsonProperty("x-example") public Object getExample() {  // 如果example未指定值,默认是 example=""  if (example == null) {   return null;  }  try {   // 这里的 equals():只要参数不为null,并且是一个String类型,就返回true.   // 判断被注解(属性,参数)的类型,进入第一个if内。 Long.valueOf("")-->抛出NumberFormatException异常被捕获   if (BaseIntegerProperty.TYPE.equals(type)) {    return Long.valueOf(example);   } else if (DecimalProperty.TYPE.equals(type)) {    return Double.valueOf(example);   } else if (BooleanProperty.TYPE.equals(type)) {    if ("true".equalsIgnoreCase(example) || "false".equalsIgnoreCase(defaultValue)) {     return Boolean.valueOf(example);    }   }  } catch (NumberFormatException e) {   LOGGER.warn(String.format("Illegal DefaultValue %s for parameter type %s", defaultValue, type), e);  }  return example; }

复现异常
public static void main(String[] arg.........

"xception in thread "main" java.lang.NumberFormatException: For input string: "20

spark.SparkContext: Registered listener com.cloudera.spark.lineage.ClouderaNavigatorListener
"xception in thread "main" java.lang.NumberFormatException: For input string: "20
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:492)
    at java.lang.Integer.valueOf(Integer.java:582)
    at com.xiaodao.spark.examples.ml.AdaoKMeanService.main(AdaoKMeanService.java:166)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:730)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
17/10/12 17:42:02 INFO spark.SparkContext: Invoking stop() from shutdown hook
17/10/12 17:42:02 INFO ui.SparkUI: Stopped Spark web UI at http://192.168.1.30:4041
17/10/12 17:42:02 INFO spark.MapOutputTrackerMasterEndpoint: MapOutputTrackerMasterEndpoint stopped!
17/10/12 17:42:02 INFO storage.MemoryStore: MemoryStore cleared
 

Android开发build出现java.lang.NumberFormatException: For input string:

Android开发build出现java.lang.NumberFormatException: For input string: "tle 0x7f0800aa"错误的解决方案

查看异常栈没有发现项目代码的问题,因为问题是出现在layout文件中。
全局查找tle这个,发现在某个layout文件中title一词被变成ti tle了,结果Android就xjb报错了。
参考

Caused by: java.lang.NumberFormatException: For input string:

Caused by: java.lang.NumberFormatException: For input string: "18446744073709551615"

问题:Caused by: java.lang.NumberFormatException: For input string: "18446744073709551615"

原因:18446744073709551615  --有20位,

而long类型的最大长度是: 19位:9223372036854775807

long类型的最大值是9223372036854775807,刚好长度是19个数字

 

解决:

1.类型换成 float, float的最大值为3.403E38, 也就是3.403*10的38次方,这个长度至少在38位吧,够用了

 

2.BigInteger. 非基本类型,需要用对应的+-*/方法,如下: 

求和:
BigInteger add(BigInteger val) 返回两个大整数的和
求差:
BigInteger subtract(BigInteger val) 返回两个大整数的差
求积:
BigInteger multiply(BigInteger val) 返回两个大整数的积
求商:
BigInteger divide(BigInteger val) 返回两个大整数的商
求模:
BigInteger mod(BigInteger val) 用当前大整数对val求模
求乘方:
BigInteger pow(int exponent) 返回当前大整数的exponent次方
求余:
BigInteger remainder(BigInteger val) 返回当前大整数除以val的余数


类型转换:
double doubleValue() 返回大整数的double类型的值
float floatValue() 返回大整数的float类型的值
long longValue() 返回大整数的long型值
int intValue() 返回大整数的整型值


其它:
BigInteger abs() 返回大整数的绝对值
BigInteger gcd(BigInteger val) 返回大整数的最大公约数
BigInteger max(BigInteger val) 返回两个大整数的最大者
BigInteger min(BigInteger val) 返回两个大整数的最小者
byte[] toByteArray(BigInteger val)将大整数转换成二进制反码保存在byte数组中

详见:https://blog.csdn.net/weixin_40254218/article/details/79474600

 

3.BigDecimal

BigInteger 任意精度的整数~
可以使用BigDecimal, 支持大整数,浮点运算

long也有限制,不过BigInteger可以存任意大的数

1、有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,可以作为比long还要大的数据类型
2、使用字符串或字符串数组、集合等能够存储比long大很多倍的整数变量类型(需数据类型转换)

Java中为什么float型最大值大于long型?
https://blog.csdn.net/u011240877/article/details/47723263

Java中有比long还大的整数类型吗
https://zhidao.baidu.com/question/240285392967051564.html

Error querying database. Cause: java.lang.NumberFormatException: For input string: xx

Error querying database. Cause: java.lang.NumberFormatException: For input string: xx

这是由于mybatis参数格式化异常导致,例如在动态sql拼接中String类型参数和数字比较。

	<if test="param.xxx!= ''2''">
  • 1

其中xxx为String类型,加单引号mybatis会认为String和char比较,也会导致报错
解决方法

  1. 用toString()转成字符串, ''2''.toString()
  2. 改为双引号"2",外层使用单引号。
	<if test=''param.xxx!= "2"''>

关于异常解决:swagger2.9.2 报java.lang.NumberFormatException: For input string: ““...java报错for input string的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于"xception in thread "main" java.lang.NumberFormatException: For input string: "20、Android开发build出现java.lang.NumberFormatException: For input string: "tle 0x7f0800aa"错误的解决方案、Caused by: java.lang.NumberFormatException: For input string: "18446744073709551615"、Error querying database. Cause: java.lang.NumberFormatException: For input string: xx等相关内容,可以在本站寻找。

本文标签: