Кратко:
- Используйте необязательный параметр для возможных нулевых объектов.
- Используйте потоки для итерации/фильтрации/сопоставления/сбора данных
- Используйте функции/поставщики для повторного использования повторяющегося кода.
- Используйте дженерики
Избегайте передачи и сравнения с нулевым значением. Вместо этого используйте необязательный.
Передайте пустые коллекции вместо null. (для них необязательный является дополнительным). (например, Collections.emptyList, Collections.EmptyMap и т. д.)
Используйте поток java 8 для итерации/фильтрации/сопоставления данных.
В следующем примере мы конвертируем список строк в список int, фильтруя отрицательные значения старым (для каждого) и новым (потоковым) способами. Также мы придерживаемся короткого способа инициализации списка Arrays.asList();
Используйте функции/поставщики для выполнения кода в качестве параметра. В следующем примере мы видим, что код почти такой же. Единственная разница в выполняемой функции:
Таким образом, мы можем легко извлечь одну и ту же часть и передать в качестве параметра поставщика только другую часть:
Но что, если нам нужно вернуть какое-то значение, а не просто пустые инструкции? Например:
Так что в таком случае мы можем использовать старые добрые дженерики!
Помните, что элегантный код — это признак профессионализма.