在Java中获取typeof

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我是一个Java新手。我试图找出一个数字是否是一个像这样的Double:

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

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

提问于
用户回答回答于

尝试这个:

if (items.elementAt(1) instanceof Double) {
   sum.add( i, items.elementAt(1));
}
用户回答回答于

反射速度较慢,但​​对于想要知道是狗还是猫而不是动物实例的情况有效。所以你会这样做:

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>();

扫码关注云+社区