弄清楚Java中的数字是否为Double

时间:2009-10-29 04:28:55

标签: java typeof

我是Java新手。我试图弄清楚一个数字是否是一个像这样的东西:

if ( typeof ( items.elementAt(1) )== Double ) {
       sum.add( i, items.elementAt(1));
}

如果有人能告诉我如何重新排列语法以使其正常工作,我们将不胜感激。

4 个答案:

答案 0 :(得分:137)

试试这个:

if (items.elementAt(1) instanceof Double) {
   sum.add( i, items.elementAt(1));
}

答案 1 :(得分:8)

反射速度较慢,但​​适用于您想知道是狗类型还是猫类而不是动物实例的情况。所以你会做类似的事情:

if(null != items.elementAt(1) && items.elementAt(1).getClass().toString().equals("Cat"))
{
//do whatever with cat.. not any other instance of animal.. eg. hideClaws();
}

不说上面的答案不起作用,除了必须使用空检查部分。

另一种回答这种方式的方法是使用泛型,并且保证您可以将Double作为任何元素元素。

List<Double> items = new ArrayList<Double>();

答案 2 :(得分:6)

由于这是Google提出的第一个问题,我还会在此处添加JavaScript样式typeof替代方案:

myObject.getClass().getName() // String

答案 3 :(得分:1)

使用正则表达式来完成此任务。请参考以下代码。

AppDomain.UnhandledException