Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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
ArrayList在java中未正确初始化_Java_Arraylist - Fatal编程技术网

ArrayList在java中未正确初始化

ArrayList在java中未正确初始化,java,arraylist,Java,Arraylist,我正在应用程序中使用ArrayList。 我声明了List productList=new ArrayList()全局,但产品未添加到此列表中,因为productList显示为null,而不是空数组列表 下面是我的代码: Map<String, List<Product>> productListMap = productSuggestBox.getValueMap(); List<Product> queriedProductList = productL

我正在应用程序中使用
ArrayList

我声明了
List productList=new ArrayList()全局,但产品未添加到此列表中,因为
productList
显示为
null
,而不是空数组列表

下面是我的代码:

Map<String, List<Product>> productListMap = productSuggestBox.getValueMap();

List<Product> queriedProductList = productListMap.get("productList");

long productId = Long.valueOf(productSuggestBoxValue);

for (Product product : queriedProductList) {
    if (product.getId() == productId) {
        productList.add(product);
        break;
    }
}
Map-productListMap=productSuggestBox.getValueMap();
List queriedProductList=productListMap.get(“productList”);
long productId=long.valueOf(productSuggestBoxValue);
用于(产品:queriedProductList){
if(product.getId()==productId){
productList.add(产品);
打破
}
}

以下是从您提供的片段中拼凑代码结构的尝试:

public class SalesInvoiceWidget extends Composite { 
    List<Product> productList = new ArrayList<Product>();

    // ...

    private void someMethod() {
        Map<String, List<Product>> productListMap = 
                productSuggestBox.getValueMap();

        List<Product> queriedProductList = productListMap.get("productList");

        long productId = Long.valueOf(productSuggestBoxValue);

        for (Product product : queriedProductList) {
            if (product.getId() == productId) {
                productList.add(product);
                break;
            }
        }
公共类SalesInvoiceWidget扩展复合{
List productList=new ArrayList();
// ...
私有方法(){
Map productListMap=
productSuggestBox.getValueMap();
List queriedProductList=productListMap.get(“productList”);
long productId=long.valueOf(productSuggestBoxValue);
用于(产品:queriedProductList){
if(product.getId()==productId){
productList.add(产品);
打破
}
}
假设上面的重构是完全正确的,那么
productList
可以
null
的唯一方法就是在代码中的某个地方(上面没有显示!),将
null
分配给
productList

另一种可能的解释是,
productList
的不同声明在您看到
null
的点的作用域中;例如,它可能是一个局部变量或一个名为
productList
的方法参数,它隐藏着“全局”声明



请注意,如果Java中的变量以前是非null的,它就不能神奇地变为
null
。要么是分配给它的某个变量,要么是另一个变量。没有其他合理的解释……假设您使用的是纯Java。

显示您的代码。我删除了“gwt”标记,因为在编写时,这似乎是ju这是一个与GWT无关的Java问题。@RoddyofFrozenpeas我们不知道他的代码是否真的是这么说的。我不会把它改成其他的东西。@msnaidu是否可以包含整个Java类的相关片段,而不仅仅是访问列表时的方法?谢谢“全局”,您的意思是这是您的类中的一个字段?该字段在何时何地初始化?