Erik_Mironov
@Erik_Mironov
Старые вопросы: *Dies from cringe*

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

К примеру у меня есть класс генерации пароля с 3 разными методами, которые генерируют буквенные символы верхнего и нижнего регистра, а так же цифры, в количестве, указанным в пользовательском вводе. 4 аргументом пользовательского ввода является длина конечного пароля и если длина пароля больше, чем сумма 3 предыдущих аргументов, то необходимо вызывать случайный метод генерации символов, который будет дополнять недостающую длину пароля. Возможно ли это сделать с помощью класса Random?
  • Вопрос задан
  • 266 просмотров
Решения вопроса 1
xez
@xez Куратор тега Java
TL 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 - массив инстансов классов-генераторов с общей базой).
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы