我是Java新手。我试图弄清楚一个数字是否是一个像这样的东西:
if ( typeof ( items.elementAt(1) )== Double ) {
sum.add( i, items.elementAt(1));
}
如果有人能告诉我如何重新排列语法以使其正常工作,我们将不胜感激。
答案 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