Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java检查容器中对象的类型_Java_Arraylist - Fatal编程技术网

Java检查容器中对象的类型

Java检查容器中对象的类型,java,arraylist,Java,Arraylist,在java中,如果ArrayList中的对象是double类型。什么方法检查并返回一个布尔值来告诉我对象是否属于特定的动态类型 大概是这样的: pseudo code: if(bid.get(i) is double ) { return bid.get(i); } ArrayList可以保存Doubles,但不能保存Doubles(Java集合不能直接保存基元类型) 你可以写: if

在java中,如果ArrayList中的对象是double类型。什么方法检查并返回一个布尔值来告诉我对象是否属于特定的动态类型

大概是这样的:

  pseudo code:
         if(bid.get(i) is double )
              {

               return bid.get(i);
              }

ArrayList
可以保存
Double
s,但不能保存
Double
s(Java集合不能直接保存基元类型)

你可以写:

if (bid.get(i) instanceof  Double)

您可以使用
instanceof
运算符:

if (bid.get(i) instanceof Double) {
    return bid.get(i);
}

注意,这只适用于对象类型,因此您可以检查
Double
s(即
java.lang.Double
实例),但不适用于原语
Double
s。同样,当您向
列表添加
double
时,它会自动装箱到
double
,因此我猜这种区别对您来说并不重要。

如果您使用的是java 5或更高版本。您可以使用泛型并将arraylist声明为
arraylist
,这将确保它只包含双重引用,并防止显式类型转换。 但是如果您有任何限制,那么可以使用
instanceOf
操作符。

试试这个-

if (bid.get(i) instanceof Double) {
    return bid.get(i);
}

bid.get(i)instanceof Double
“从头开始扫描”什么#get不“扫描”任何东西。我的坏汤姆-linkedList就是这样。不知怎的,我没有注意到。我现在把它拿出来了:)