Java 如何确定JsonPrimitive的类型
我试图确定JsonPrimitive对象的类型。例如:Java 如何确定JsonPrimitive的类型,java,json,Java,Json,我试图确定JsonPrimitive对象的类型。例如: if (jsonPrimitive.isNumber()) { Number number = jsonPrimitive.getAsNumber(); .... } 数字类型为数字,因为以下为真: (number instanceof Number) 但以下是错误的: (number instanceof Integer) 当然,基础值是整数(例如-5)。 我希望能够从我的方法返回正确的对象。 谢谢 您使用的是哪个库?N
if (jsonPrimitive.isNumber()) {
Number number = jsonPrimitive.getAsNumber();
....
}
数字类型为数字,因为以下为真:
(number instanceof Number)
但以下是错误的:
(number instanceof Integer)
当然,基础值是整数(例如-5)。我希望能够从我的方法返回正确的对象。
谢谢 您使用的是哪个库?
Number
是抽象的,因此,Number变量的实际类应该是:Integer
、Long
、biginger
,我怀疑您的库是否需要/有Number
的自定义实现。您是否尝试过使用长的instanceof或大整数的instanceof?是的。我已经试过了,但没有成功:\n我正在使用gson 2.0.2您在if(jsonPrimitive.isNumber())
块中执行instanceof Integer
测试吗?如果测试成功,则应工作:。参见第140行和第150行。