繁体   English   中英

尝试将新对象添加到数组时出现空指针异常?

[英]Null Pointer Exception when trying to add new object to array?

我有一个数组moviefilm,其逻辑大小为15,物理大小为50。我有以下代码:

    for(int a=0;a<moviearray.length;a++)
            {
                if (moviearray[a]!=null)
                    {
                        if(moviearray[a].getTitle()==catAddTitle.getText())
                        {
                            moviearray[a].addExisting(Integer.parseInt(catAddNumber.getText()));
                            break;
                        }
                    }   
                else
                {
                    moviearray[a].setTitle(catAddTitle.getText());
                    moviearray[a].setNumber(Integer.parseInt(catAddNumber.getText()));
                    moviearray[a].setGenre(catAddGenre.getText());
                    moviearray[a].setYear(Integer.parseInt(catAddYear.getText()));
                    moviearray[a].setRating(catAddRating.getSelectedItem());
                    moviearray[a].setPrice(Double.parseDouble(catAddPrice.getText()));
                    break;
                }
            }

我正在尝试使用它,以便当我在catAddTitle(文本字段)中输入电影标题并且与当前在moviearray中的电影匹配时,它将通过在文本字段catAddNumber中输入的数字来增加电影的数量元素。 但是,当我尝试执行此操作时,它在网上给了我一个nullpointerexception:

    moviearray[a].setTitle(catAddTitle.getText()); 

示例:我在数组中的对象之一具有元素“ Hobbit / 55 / Adventure / 2012 / PG-13 / 10.00”(标题,编号,类型,年份,等级,价格)。 应该发生的是,当我在catAddTitle中输入“ Hobbit”,在c​​atAddNumber中输入“ 3”时,它应该将数字更改为“ 58”(尽管有其他文本字段数据)。 提前致谢

在else分支中-仅当moviearray[a] == null时才执行-您需要

moviearray[a] = new YourObject();

首先,即创建类的实例并将其存储在数组中。

您需要将字符串与equals()而不是==运算符进行比较

if(moviearray[a].getTitle()==catAddTitle.getText())

if(moviearray[a].getTitle().equals(catAddTitle.getText()))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM