从String中获取原始数字类型的Class

时间:2016-06-22 08:34:09

标签: java primitive

是否有一种简单的方法可以从String中获取原始数字类型的类?

对于"42",该方法将返回int.class

对于"25.8",它会返回float.class等等......

我只需要检查数字类型,因此该方法不必关心布尔值和字节。

我在问,以防万一有人知道可以做这件事的库方法。

1 个答案:

答案 0 :(得分:1)

  

是否有一种简单的方法可以从String中获取原始数字类型的类?

AFAIK ......没有。

一个原因是许多数字字符串可以有多种表示类型;例如"42"可以表示为:

  • a byteshortintlong
  • a floatdouble
  • 以上的包装类型,
  • a BigIntegerBigDecimal,或......
  • a StringStringBuilderStringBuffer

另一方面,像"25.8"这样的数字可能在任何基本类型或其包装中都没有精确表示。

如果(通常)没有单一的正确答案,那么Java SE库或任何常用的第三方库都没有提供通用解决方案也就不足为奇了。