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

Get Class of a primitive number type from a String

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

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

对于 "25.8" 它会 return float.class, 等等...

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

我在问,以防万一有人知道可以执行此操作的库方法。

Is there a simple way to get Class of a primitive number type from String?

据我所知...不,没有。

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

  • a byteshortintlong
  • a floatdouble,
  • 以上的包装类型,
  • 一个BigInteger或一个BigDecimal,或...
  • a StringStringBuilderStringBuffer.

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

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