Сейчас изучаю Java и усваиваю главные принципы ООП, хочу избежать повторяющегося однотипного кода. Ниже я привел простой пример считывания данных с поля по нажатию кнопки, и указания ему (полю) неких правил. Эти правила могут повторятся для множества полей, и я не понимаю как можно создать некий класс с проверкой для любого поля, что бы в дальнейшем не прописывать одно и то же, а просто вызвать метод, где естественно заранее все правила будут указаны. Я конечно могу создать класс, и начать прописывать правила, но какому объекту их передавать или как это делается, ведь я не могу просто в методе сразу прописывать getText().trim().contains("@")
и тому подобное. Помогите пожалуйста разобраться заблудшей душе.
registrationButton.setOnAction(event -> {
String passwordText = passwordRegField.getText().trim();
String mailText = mailRegField.getText().trim();
if (!passwordText.equals("") && !mailText.equals("") && mailText.contains("@") && mailText.contains(".")) {
signUpNewUser();
} else System.out.println("введите данные");
});
Вызываете метод и передаете в него значения, а уже в самом методе они обрабатываются:
registrationButton.setOnAction(event -> {
String passwordText = passwordRegField.getText().trim();
String mailText = mailRegField.getText().trim();
your_method(passwordText, mailText );
});
void your_method(String passwordText, String mailText) {
if (!passwordText.equals("") && !mailText.equals("") &&
mailText.contains("@") && mailText.contains(".")) {
signUpNewUser();
} else {
System.out.println("введите данные");
}
}
На Вашем месте я бы никуда не выносил методы, которые проверяют на то, что в строке что-то есть, а вот если логика сложнее, то использовал бы либо метод, либо если эта валидация применима ко многим классам, то вынес бы эту проверку в какой-нибудь утилитный класс в статический метод. И для проверки email использовал бы какое-нибудь подходящее регулярное выражение. public static boolean isValidEmail(final String value) { return value != null && value.matches(EMAIL_REGEXP); }
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Необходимо сделать много различных post запросов и хотелось бы заранее считывать изjson файла информацию для добавления в тело запроса
Есть div main, содержащий в себе div targetКак сделать при помощи flexbox так чтобы при изменении масштаба блоки target находились на своём месте?