Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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 - Fatal编程技术网

Java 强制转换时列表的新实例

Java 强制转换时列表的新实例,java,Java,这条线: List params = (List) hashMap.get(key); 创建一个新列表,或者只是将其附加到列表中 以下是我如何使用代码: ParameterCache cache = ParameterCache.getInstance(); HashMap hashMap = cache.getAllParameters(ParameterCodeConstants.PARAMETER_DORF_REGION, false); ArrayLis

这条线:

List params = (List) hashMap.get(key);
创建一个新列表,或者只是将其附加到列表中

以下是我如何使用代码:

ParameterCache cache = ParameterCache.getInstance();
        HashMap hashMap = cache.getAllParameters(ParameterCodeConstants.PARAMETER_DORF_REGION, false);
        ArrayList regionIdList=new ArrayList();
        Set keys = hashMap.keySet();
        Iterator it = keys.iterator();
        while (it.hasNext()) {
            BigDecimal key = (BigDecimal) it.next();
            List params = (List) hashMap.get(key);
            if (params != null && params.size() > 0) {
                ParameterDTO paramDTO = (ParameterDTO) params.get(0);

                String textValue = paramDTO.getParameterTextValue();
                if(textValue.equals(region_id)){
                    regionIdList.add(paramDTO.getRegion());
                }

            }

        }
一种表达,如

(List) hashMap.get(key);
不会创建新列表。它将返回存储在映射中的列表引用的副本

(我没有看到任何对
add
的调用,因此我也看不到任何东西是如何被追加的。)

一个表达式,例如

(List) hashMap.get(key);
不会创建新列表。它将返回存储在映射中的列表引用的副本

(我没有看到任何对
add
的调用,因此我也不知道如何添加任何内容。)

这一行是创建一个新的列表还是只是附加到列表中

List params = (List) hashMap.get(key);
所有这些都没有-这里只进行了一项任务。此映射中与
关联的值应该是对现有
列表
对象(或
null
)的引用,该值由
get
返回。然后将该引用分配给
参数

由于局部变量
params
在此声明之前不存在,因此没有任何可附加的列表

这一行是创建一个新的列表还是只是附加到列表中

List params = (List) hashMap.get(key);
所有这些都没有-这里只进行了一项任务。此映射中与
关联的值应该是对现有
列表
对象(或
null
)的引用,该值由
get
返回。然后将该引用分配给
参数


由于局部变量
params
在此声明之前不存在,因此没有任何要追加的列表。

list params=(list)hashMap.get(key)
,params将是hashmap.get(key)的返回值。因此,不存在追加操作。

List params=(List)hashMap.get(key)行中
,params将是hashmap.get(key)的返回值。所以不,这里没有追加操作。

为什么不试试看会发生什么呢?List params=(List)hashMap.get(key);我只是想知道是否每次都会在while循环中新创建params list,或者只是根据代码将map中的值附加到dto中,或者每次在循环中,DTO都将被添加到列表的第0个位置。谢谢大家…在我自己尝试之后才找到答案…正如前面所讨论的,它只是对DTO对象的引用,并且在每次处理循环时都会刷新。没有附加发生。为什么不尝试一下,看看会发生什么?列表params=(List)hashMap.get(key);我只是想知道是否每次都会在while循环中新创建params list,或者只是根据代码将map中的值附加到dto中,或者每次在循环中,DTO都会被添加到列表的第0个位置。谢谢大家…我自己尝试后才找到答案…正如前面讨论的,它只是对DTO对象的引用,并且在每次处理循环时都会刷新..没有附加发生..@Peter--你的意思是说DTO对象会每次放置在第0个位置。循环完成后,下一个DTO引用将放置在第0个位置,替换上一个DTO引用。@Peter--您的意思是说DTO对象将每次放置在第0个位置。循环完成后,下一个DTO引用将放置在第0个位置,替换以前的DTO参考。