@Erik_Mironov

Могу ли я с помощью класса Random вызывать случайный метод класса?

К примеру у меня есть класс генерации пароля с 3 разными методами, которые генерируют буквенные символы верхнего и нижнего регистра, а так же цифры, в количестве, указанным в пользовательском вводе. 4 аргументом пользовательского ввода является длина конечного пароля и если длина пароля больше, чем сумма 3 предыдущих аргументов, то необходимо вызывать случайный метод генерации символов, который будет дополнять недостающую длину пароля. Возможно ли это сделать с помощью класса Random?
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
@xez
Senior Junior Roo
Примерно так:
import java.util.List;
import java.util.Random;
import java.util.function.Function;

class RandomFunctor {

    private final List<Function<Integer, String>> functionList = List.of(
            integer -> {
                return "this is from first " + integer; //TODO :: implement me!
            },
            integer -> {
                return "this is from second " + integer; //TODO :: implement me!
            },
            integer -> {
                return "this is from third " + integer; //TODO :: implement me!
            });


    public String getRandomString(Integer input) {
        var rand = new Random();
        var function = functionList.get(rand.nextInt(functionMap.size()));
        return function.apply(input);
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
ВОзможно. Но не напрямую.
В целом т.к. у вас три метода всего - то тут банальным switch-case подойдет. В более сложных случаях - массив методов (если такого нет в Java - массив инстансов классов-генераторов с общей базой).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
XCritical Software Санкт-Петербург
До 370 000 ₽
MediaSoft Ульяновск
от 80 000 до 150 000 ₽
от 150 000 до 200 000 ₽
25 окт. 2020, в 04:58
2000 руб./за проект
24 окт. 2020, в 22:43
3000 руб./за проект