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类的相关片段,而不仅仅是访问列表时的方法?谢谢“全局”,您的意思是这是您的类中的一个字段?该字段在何时何地初始化?