Java 如何确定JsonPrimitive的类型

Java 如何确定JsonPrimitive的类型,java,json,Java,Json,我试图确定JsonPrimitive对象的类型。例如: if (jsonPrimitive.isNumber()) { Number number = jsonPrimitive.getAsNumber(); .... } 数字类型为数字,因为以下为真: (number instanceof Number) 但以下是错误的: (number instanceof Integer) 当然,基础值是整数(例如-5)。 我希望能够从我的方法返回正确的对象。 谢谢 您使用的是哪个库?N

我试图确定JsonPrimitive对象的类型。例如:

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行。