Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 1
Регистрация: 10.10.2016
Сообщений: 76

Нужно проверить содержит ли поля со значением null или 0, если содержит то выбросить исключение RuntimeException?

21.02.2021, 22:33. Показов 2375. Ответов 5

Студворк — интернет-сервис помощи студентам
Нужно проверить содержит ли поля со значением null или 0, если содержит то выбросить исключение RuntimeException.
Это учебная задачка, так что строго не судите, сам пытался сделать но не получается.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Main {
    public static void main(String[] args) {
        for (Event event : getMovies()) {
            validEvent(event);
        }
        for (Event event : getTheatres()) {
            validEvent(event);
        }
        System.out.println("Все события корректны");
    }
 
    public static Movie[] getMovies() {
        return new Movie[]{
                new Movie("", 2010, 16)
        };
    }
 
    public static Theatre[] getTheatres() {
        return new Theatre[]{
                new Theatre("", 0, 0)
        };
    }
 
    public static void validEvent(Event event) {
        if (event.equals(null) || event.equals("")) {
            throw new RuntimeException();
        } else {
            System.out.println("Все ок");
        }
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public abstract class Event {
    private String title;
    private int releaseYear;
    private int age;
 
    public Event(String title, int releaseYear, int age) {
        this.title = title;
        this.releaseYear = releaseYear;
        this.age = age;
    }
 
    @Override
    public String toString() {
        return "Event{" +
                "title='" + title + '\'' +
                ", releaseYear=" + releaseYear +
                ", age=" + age +
                '}';
    }
}
Java
1
2
3
4
5
public class Movie extends Event {
    public Movie(String title, int releaseYear, int age) {
        super(title, releaseYear, age);
    }
}
Java
1
2
3
4
5
public class Theatre extends Event {
    public Theatre(String title, int releaseYear, int age) {
        super(title, releaseYear, age);
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2021, 22:33
Ответы с готовыми решениями:

Файл содержит сведения о сдаче зачета, каждая запись которого содержит поля
В соответствии с индивидуальным заданием разработать структуру записи комбинированного типа. Разработать схему алгоритма и программу...

Файл содержит сведения о стаже работы сотрудников, каждая запись которого содержит поля: наименование кафедры
Ребят,помогите с паскалем 1. Файл содержит сведения о стаже работы сотрудников, каждая запись которого содержит поля: наименование...

Файл содержит сведения о телефонах,каждая запись из которого содержит поля:фамилия абонента и номер телефона
Помогите пожалуйста проверить программуO_o 1) Файл содержит сведения о телефонах,каждая запись из которого содержит поля:фамилия...

5
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
22.02.2021, 01:07
Если геттеры нет возможно добавить, то остается рефлексия, которую все же лучше избегать:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    public static void validEvent(Event event) {
        
        try {
           Field[] fields = event.getClass().getSuperclass().getDeclaredFields();
           
           for ( Field field : fields ) {
               field.setAccessible(true);
               String fieldName = field.getName();
               var fieldValue = field.get(event);
 
               switch (field.getType().getSimpleName()) {
                       case ("String"):
                           if (fieldValue == null || fieldValue.equals("")) {
                               throw new RuntimeException("Check " + fieldName + ", Sir!");
                           }
                           break;
 
                       case ("int"):
                           if ((int) fieldValue == 0) {
                               throw new RuntimeException("Check " + fieldName + ", Sir!");
                           }
                           break;
 
                       default:
                           System.out.println("Добавьте тип " + field.getType().getSimpleName());
                           break;
                   }
           }
        } catch (RuntimeException re) {
           System.out.println("Fire in a hole " + re);
        } catch (Exception e) {
           e.printStackTrace();
        }
    }
0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
06.04.2021, 23:25
Раз по условию #toString() не переопределен в наследниках, то можно от него толкнуться:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Main {
    public static void main(String[] args) {
        List<Event> events = List.of(
                new Theatre("Title", 1, 2),
                new Movie("Movie", 1, 2),
                new Theatre(null, 1, 2),
                new Movie("movie", 1, 0),
                new Theatre("theatre", 0, 1));
 
        for (Event event : events) {
            if (eventHasNullOrZero(event))
                throw new RuntimeException("null or 0 found for event " + event);
        }
    }
 
    private static boolean eventHasNullOrZero(Event event) {
        String s = event.toString();
 
        return s.contains("title='null'") || s.contains("releaseYear=0") || s.contains("age=0");
    }
}
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
07.04.2021, 00:15
Цитата Сообщение от HighPredator Посмотреть сообщение
Раз по условию #toString() не переопределен в наследниках
и через месяц его кто-нибудь обязательно переопределит
0
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,465
07.04.2021, 09:04
AmirKenesbay,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class Helper {
    public static void main(String[] args) {
        List<Event> events = Arrays.asList(
                new Theatre("Title", 1, 2),
                new Movie("Movie", 1, 2),
                new Theatre(null, 1, 2),
                new Movie("movie", 1, 0),
                new Theatre("theatre", 0, 1));
        for (Event tmp : events)
            if (tmp.isAnyFieldNull())
                System.out.println(tmp);
    }
}
//###
abstract class Event {
    private String title;
    private int releaseYear;
    private int age;
 
    public Event(String title, int releaseYear, int age) {
        this.title = title;
        this.releaseYear = releaseYear;
        this.age = age;
    }
 
    public boolean isAnyFieldNull() {
        return title == null || releaseYear == 0 || age == 0;
    }
 
    @Override
    public String toString() {
        return "Event{" +
                "title='" + title + '\'' +
                ", releaseYear=" + releaseYear +
                ", age=" + age +
                '}';
    }
}
//###
class Movie extends Event {
    public Movie(String title, int releaseYear, int age) {
        super(title, releaseYear, age);
    }
}
//###
class Theatre extends Event {
    public Theatre(String title, int releaseYear, int age) {
        super(title, releaseYear, age);
    }
}
0
07.04.2021, 20:03

Не по теме:

Цитата Сообщение от xoraxax Посмотреть сообщение
через месяц его кто-нибудь обязательно переопределит
Необязательно:D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.04.2021, 20:03
Помогаю со студенческими работами здесь

Файл содержит сведения о возрасте, каждая запись которого содержит поля: фамилия рабочего и возраст. Выдать информацию о самом молодом сотруднике
(25.)Файл содержит сведения о возрасте, каждая запись которого содержит поля: фамилия рабочего и возраст. Выдать информацию о самом молодом...

В матрице размером NxM поменять местами строку, которая содержит элемент с наибольшим значением со строкой, которая содержит элемент с наименьшим
В матрице размером NxM поменять местами строку, которая содержит элемент с наибольшим значением со строкой, которая содержит элемент с...

Дан файл из трех строк. Первая строка содержит две цифры о длине следующих строк, нужно проверить одинаковые ли элементы в след строках или нет.
Дан файл из трех строк. Первая строка содержит две цифры о длине следующих строк, нужно проверить одинаковые ли элементы в след строках или...

MVVM. Если окно содержит 1 TabControl, который в себе содержит много вкладок и в каждой может быть другой TabControl с вкладками
Я сделал так: Создал UserControl, в него поместил TabControl создал вкладки, во вкладки начал помещать нужные объекты (ListView, кнопки,...

Кликая по label с емайлом, нужно открыть почтовый клиент, или загрузить url, если label содержит url
Кликая по label с емайлом, нужно открыть почтовый клиент, или загрузить url, если label содержит url


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru