0

我无法将对象添加到集合中。

我在尝试将对象添加到集合时遇到了 java.lang.NullPointerException。

我使用 if 条件测试并检查了 RedemptionEntity 的兑换不为空,如下面的代码所示。它返回“不为空!!!!!!!!!”

我去谷歌搜索,当您尝试将空值添加到集合中时,会发生 java.lang.NullPointerException。但在这种情况下,我不认为赎回是无效的。System.out.println(ex.getMessage()); 给我一个空值。

我该如何解决这个问题?这里有什么帮助吗?

private Collection<RedemptionEntity> redemptionCollection; 
RedemptionEntity redemption = new RedemptionEntity();
GiftEntity GIFT = em.find(GiftEntity.class, gift);
redemption.create(date, 0);
redemption.setGift(GIFT);
em.persist(redemption);

if (redemption == null) {
                System.out.println("NULL!!!!!!!!");
            } else {
                System.out.println("Not NULL!!!!!!!!");
            }
            try {
                redemptionCollection.add(redemption); //This line is where the exception occurs...
            } catch (Exception ex) {
                System.out.println(ex.getMessage());
                ex.printStackTrace();
            }
4

3 回答 3

2

集合是一个接口。使用 ArrayList 或其他 List 类型进行初始化。

ArrayList<RedemptionEntity> col = new ArrayList<RedemptionEntity> ();

或者

Collection<RedemptionEntity> col = new ArrayList<RedemptionEntity> ();
于 2013-10-20T14:31:22.463 回答
1

你初始化你的收藏了吗?

 private Collection<RedemptionEntity> redemptionCollection = new ArrayList<RedemptionEntity>();

会工作。

于 2013-10-20T14:30:57.160 回答
0

您必须使用实现集合接口的类之一:Set、List、Map、SortedSet、SortedMap、HashSet、TreeSet、ArrayList、LinkedList、Vector、Collections、Arrays、AbstractCollection

于 2013-10-20T14:33:50.313 回答