从字符串中获取原始数字类型的 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
byte
、short
、int
或 long
、
- a
float
或 double
,
- 以上的包装类型,
- 一个
BigInteger
或一个BigDecimal
,或...
- a
String
、StringBuilder
或 StringBuffer
.
另一方面,像 "25.8"
这样的数字可能在任何原始类型或其包装器中都没有 精确 表示。
如果(通常)没有一个正确答案,那么 Java SE 库或任何常用的第 3 方库没有提供通用解决方案也就不足为奇了。
有没有一种简单的方法可以从 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
byte
、short
、int
或long
、 - a
float
或double
, - 以上的包装类型,
- 一个
BigInteger
或一个BigDecimal
,或... - a
String
、StringBuilder
或StringBuffer
.
另一方面,像 "25.8"
这样的数字可能在任何原始类型或其包装器中都没有 精确 表示。
如果(通常)没有一个正确答案,那么 Java SE 库或任何常用的第 3 方库没有提供通用解决方案也就不足为奇了。