Как использовать экземпляр Singleton в других классах - PullRequest
0 голосов
/ 10 апреля 2020

Я использую шаблон Singleton ниже, чтобы создать пользователя, чтобы моя программа знала, что пользователь вошел в систему. Я пытаюсь показать имя пользователя на разных страницах моей программы JavaFx, поэтому я хочу использовать детали имени пользователя из экземпляра в нескольких классах. Когда я пытаюсь использовать Usersession.toString, он говорит, что нестатический c метод не может использоваться в статическом c контексте. Как мне это исправить?

public final class UserSession {

    private static UserSession instance;

    private String userName;


    private UserSession(String userName) {
        this.userName = userName;
    }

    public static UserSession getInstace(String userName) {
        if(instance == null) {
            instance = new UserSession(userName);
        }
        return instance;
    }

    public String getUserName() {
        return userName;
    }

    public void cleanUserSession() {
        userName = "";// or null

    }

    @Override
    public String toString() {
        return "UserSession{" +
                "userName='" + userName + "}";
    }
}

1 Ответ

0 голосов
/ 10 апреля 2020

На самом деле вы пытаетесь получить доступ к методу без его экземпляра. Правильный способ сделать это, как показано ниже:

UserSession.getInstace ("детали вашего имени пользователя"). ToString ();

, тогда он вернется ниже деталей в соответствии с вашим методом toString (): UserSession {userName = 'ваши данные пользователя}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...