如何避免在ArrayList中插入空值?

时间:2014-02-06 10:43:13

标签: java

如何在插入元素时避免在ArrayList中插入空值?

ArrayList<String> al=new ArrayList<String>();
al.add(null);//should avoid
.
.
.
al.add("Ramesh");

4 个答案:

答案 0 :(得分:2)

避免null有时会有害,它可能会隐藏可能的错误。

如果您担心在某个阶段获得NullPointerException,则只需检查ArrayList中存储的项目是否为null

您不能禁止将null插入ArrayList

答案 1 :(得分:0)

您可以创建自己的ArrayList-Class(从原始派生)并覆盖Add-Method
然后你可以在添加时检查null。

@Override
public boolean add(E e) {
  if (e == null) return false;
  else return super.add(e)
}

正如Mark在评论中所说,您可能希望覆盖添加值的所有其他可能性。 (see the doc

  • 添加(E e)
  • add(int index,E element)
  • addAll(Collection c)
  • addAll(int index,Collection c)
  • set(int index,E element)

答案 2 :(得分:0)

你可以尝试类似的东西,但是如果你想要完全按照你的尝试去做,你必须在add()课程中重写ArrayList。使用此验证可以避免null

public static void main(String[] args) {
    ArrayList<String> al=new ArrayList<String>();
    al=add(al,null);
    al=add(al,"Ramesh");
    al=add(al,"hi");
}

public static ArrayList<String> add(ArrayList<String> al,String str){
   if(str!=null){
      al.add(str);
      return al;
   }else {
      return al;
   }
}

在这种情况下,您必须调用自定义add方法来添加元素

答案 3 :(得分:0)

ArrayList<String> al = new ArrayList<String>() {

            @Override
            public boolean add(String s ) {

                if( s != null ) {
                    return super.add( s );
                }
                return false;
            }
        };
al.add(null);
al.add("blabla");