Один BufferedReader и Random на несколько классов

Пишу программу для формирования пароля и угадывания слова пользователя путём перебора случайных символов из алфавита. Пользователь определяет длину будущего пароля и задаёт своё слова для угадывания. В обоих частях программы используется BufferedReader и случайное число. Что-бы не обьявлять вышеуказанные функции каджый раз я вынесу их в отдельный класс и впоследствии буду только обращаться к ним когда необходимо.

    MainClass.java
    public static void main(String[] args){
    GetStarted(); // "ухожу" от main класса чтобы после выполнения задачи опять вернутся к новому выбору 
    }
    
   public static void GetStarted(){
    System.out.println("Выбирайте - "1" для нового пароля и "2" для угадывания слова")
    String functionNumber = new BufferedReaderClass().reader(Integer.parseInt()); // этой строкой я хочу вызывать из класса BufferedReaderClass каждый раз новый экземпляр reader-а, но скобки parseInt() подчёркивает красным 

    if(functionNumber.eqvals("1"){
    createNewPassword();
     }
    if(functionNumber.eqvals("2"){
    guessMyWord();
     }
    }

Отдельный класом прописан BufferedReader

    BufferedReaderClass.java

    public BufferedReader reader() {
    reader = new BufferedReader(new InputStreamReader(System.in));
    return reader;
     }

Несмотря на то, что я возвращаю reader мой GetStarted() не работает. И вообще есть ли смысл разделять программу на разные классы если она очень маленькая?


Ответы (1 шт):

Автор решения: gil9red

Пусть MainClass.java и BufferedReaderClass.java будут в одной папке.

Сделайте в BufferedReaderClass метод:

public BufferedReader reader() {
    return new BufferedReader(new InputStreamReader(System.in));
}

Тестовый запуск из main метода в MainClass:

String functionNumber = new BufferedReaderClass().reader().readLine();
System.out.println(functionNumber);

Но в этом виде есть ненужное создание объекта, поэтому предлагаю reader сделать статичным:

public static BufferedReader reader() {
    return new BufferedReader(new InputStreamReader(System.in));
}

А вызывать так:

String functionNumber = BufferedReaderClass.reader().readLine();
System.out.println(functionNumber);
→ Ссылка