Проверить на null
Определите и реализуйте общий статический метод, hasNull который возвращается, true если входной массив имеет null элемент, и в false противном случае.
Sample Input 1: String There are elements of the array
Sample Output 1: false
class ArrayUtils {
public static <T> boolean hasNull(T[] value) {
if (value == null) {
return true;
}
return false;
}
}
Ответы (2 шт):
Автор решения: Сабир Исламов
→ Ссылка
В вашем коде ошибкой является применение условия ко всему массиву. Условие применять нужно к элементам массива переданного в данную функцию:
class ArrayUtils {
public static <T> boolean hasNull(T[] value) {
for (T t : value)
if (t == null)
return true;
return false;
}
public static void main(String[] args) {
Integer[] asdf = new Integer[2];
asdf[0] = 1;
// asdf[1] = 2; // пока эта строка закоментарен ответ будет true, если убрать комментарий, то ответ будет false
System.out.println(hasNull(asdf));
}
}
Автор решения: elvy
→ Ссылка
В вашем случае, вы проверяете сам массив на null, а не наличие в этом массиве null элементов.
Код с использованием Stream API
public static <T> boolean hasNull(T[] value) {
Objects.requireNonNull(value); // Если null, то пробросить исключение
return Arrays.stream(value)
.anyMatch(Objects::isNull);
}
Также можно использовать цикл for-each
public static <T> boolean hasNull(T[] value) {
Objects.requireNonNull(value); // Если null, то пробросить исключение
for (T t : value) {
if (t == null) {
return true;
}
}
return false;
}