我是个Java新手。我正在尝试计算一个数字是否是一个双精度数,如下所示:
if ( typeof ( items.elementAt(1) )== Double ) {
sum.add( i, items.elementAt(1));
}
如果有人能告诉我如何重新安排语法使其正常工作,我将不胜感激。
发布于 2009-10-29 12:30:24
试试这个:
if (items.elementAt(1) instanceof Double) {
sum.add( i, items.elementAt(1));
}
发布于 2017-12-29 00:40:19
由于这是来自谷歌的第一个问题,我将在这里添加JavaScript风格的typeof
替代方案:
myObject.getClass().getName() // String
发布于 2013-08-27 09:08:20
反射速度较慢,但适用于想知道它是狗还是猫的类型而不是Animal实例的情况。所以你会做类似这样的事情:
if(null != items.elementAt(1) && items.elementAt(1).getClass().toString().equals("Cat"))
{
//do whatever with cat.. not any other instance of animal.. eg. hideClaws();
}
不说上面的答案是不起作用的,除非空检查部分是必要的。
另一种解决方法是使用泛型,这样你就可以保证拥有两个元素。
List<Double> items = new ArrayList<Double>();
https://stackoverflow.com/questions/1641619
复制相似问题