Java 如何避免ArrayList中的空插入?
插入元素时如何避免在ArrayList中插入空值Java 如何避免ArrayList中的空插入?,java,Java,插入元素时如何避免在ArrayList中插入空值 ArrayList<String> al=new ArrayList<String>(); al.add(null);//should avoid . . . al.add("Ramesh"); 您可以创建自己的ArrayList类,该类派生自原始类并重写Add方法 然后,您可以在添加时检查null @Override public boolean add(E e) { if (e == null) return f
ArrayList<String> al=new ArrayList<String>();
al.add(null);//should avoid
.
.
.
al.add("Ramesh");
您可以创建自己的ArrayList类,该类派生自原始类并重写Add方法 然后,您可以在添加时检查null
@Override
public boolean add(E e) {
if (e == null) return false;
else return super.add(e)
}
正如Mark在评论中所说的,您可能也希望覆盖添加值的所有其他可能性
附录e
附加索引,E元素
addAllCollection c
添加索引,集合c
setint索引,E元素
避免null有时是有害的,它可能隐藏可能的bug
如果您担心在某个阶段出现NullPointerException,只需检查存储在ArrayList中的项是否为null即可
您不能禁止将null插入ArrayList。您可以尝试类似的操作,但如果您想完全执行您正在尝试的操作,则必须重写ArrayList类中的外接程序。使用此验证可以避免null
在这种情况下,您必须通过不写入al.addnull来调用自定义add方法来添加元素。如果在循环中发生这种情况,并且元素可能为null,则在插入ArrayList之前,在内部进行If检查以确保元素不为null。这是一个不成熟的解决方案。那么addAll和所有其他改变列表的方法呢?还有listIterator及其add和set方法。。。这当然比初学者的水平高了很多,这是一个初学者的问题。公共void addint index,E元素怎么样?嘿,我有addint index,E元素。但是你是对的——也许这不是最好的方法,特别是如果你是java初学者……没错。OP似乎忽略了他的问题。你能不能通过避免null给出错误示例?@KugathasanAbimaran假设你在对ArrayList执行某些操作后插入字符串。现在假设在某个时刻,您未能对字符串执行某些操作,结果返回null。如果你不插入它,你可能会认为所有的字符串都很好。扩展类对我来说更性感。。无论如何,您不需要返回arraylist的实例。或者至少每次使用al=add。只要加上艾尔。。
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");
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");