Как избежать нулевой вставки в ArrayList при вставке элемента?Как избежать нулевой вставки в ArrayList?
ArrayList<String> al=new ArrayList<String>();
al.add(null);//should avoid
.
.
.
al.add("Ramesh");
Как избежать нулевой вставки в ArrayList при вставке элемента?Как избежать нулевой вставки в ArrayList?
ArrayList<String> al=new ArrayList<String>();
al.add(null);//should avoid
.
.
.
al.add("Ramesh");
Вы можете создать свой собственный ArrayList-класс (производный от оригинала) и переопределить метод Add-
Тогда вы могли бы проверить нуль при добавлении.
@Override
public boolean add(E e) {
if (e == null) return false;
else return super.add(e)
}
Как указано в комментариях, возможно, вы захотите переопределить все другие возможности добавления значений. (see the doc)
Это полупеченое решение. Как насчет 'addAll' и всех других способов изменить список? –
Существует также 'listIterator' и его' add' и 'set' методы ... это, безусловно, выше уровня новичка, и это вопрос начинающего. –
как насчет 'public void add (int index, E element)' ?? – Helios
Избегание null
может быть вредным и может скрыть возможные ошибки.
Если вы беспокоитесь о получении NullPointerException
на определенном этапе, вы можете просто проверить, сохранен ли элемент, хранящийся в ArrayList
, null
.
Вы не можете запретить вставку null
в ArrayList
.
Точно. кажется, что OP игнорирует его проблему. –
Не могли бы вы привести примеры ошибок, избегая null? –
@ KugathasanAbimaran Предположим, вы вставляете строки после выполнения некоторой операции над ним в 'ArrayList'. Теперь предположим, что в какой-то момент вам не удалось выполнить что-то в String, и в результате вы вернете «null». Если вы не вставляете его, вы можете подумать, что все строки были в порядке. – Maroun
Вы можете попробовать что-то подобное, но если вы хотите сделать именно то, что вы пытаетесь, вам нужно переписать 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
добавить элемент
Расширяет класс более сексуально для меня .. В любом случае вам не нужно возвращать экземпляр arraylist. Или, по крайней мере, используйте al = add() каждый раз. Просто добавьте (al, ..) –
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");
К не писать 'al.add (NULL)'. –
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html – pedromss
Если это происходит в цикле, а элемент может быть пустым, выполните проверку if внутри, чтобы убедиться, что элемент не является null перед вставкой в 'ArrayList'. –