检查变量是 Long 类型还是 Double 类型

4

在对变量进行操作之前,有没有办法检查它是Double还是Long类型?有时候对象是Double类型,有时候是Long类型。我该如何在使用之前检查它的类型?

2个回答

18
if (obj instanceof Double) ...

能否将一个 Object Long 强制转换为 Double? - Gondim
1
@Adriano:如果你想要一个Long类型的值作为Double类型使用,只需使用Double doubleValue = longValue.doubleValue() - ColinD
1
toString()可以工作,但是你将通过一种完全不必要和不精确的中间数据形式进行操作。Number类(DoubleLong都是其子类)提供了专门设计用于将一个数字类型的值转换为另一种类型的数字的方法...你应该使用它们。 toString()旨在获取一个String表示,通常用于显示某些内容,并且不应用于其他任何操作。 - ColinD

6
你可以使用 instanceof
public void someMethod(Object o)
{
    if ( o instanceof Long )
    {
        // do stuff
    }
    else if ( o instanceof Double )
    {
        // do stuff
    }
}

@khachik - 我曾经认为不使用else有一些原因,但可能只是因为我疲劳了。谢谢。 - wkl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接