java - 如何在其他类中使用 Singleton 实例
问题描述
我正在使用下面的单例模式来创建用户,以便我的程序知道用户已登录。我试图在我的 JavaFx 程序的不同页面中显示用户名,所以我想使用来自的用户名详细信息多个类中的实例。当我尝试使用Usersession.toString
时,它说不能在静态上下文中使用非静态方法。我该如何解决?
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 + "}";
}
}
解决方案
实际上,您试图在没有实例的情况下访问方法。正确的方法如下:
UserSession.getInstace("你的用户名详细信息").toString();
然后它将根据您的 toString() 方法返回以下详细信息: UserSession{userName='your username details}
推荐阅读
- html - 当文本对齐时,某些单词之间的间距在移动视图中太大了
- c# - 使用 lambda 表达式获取子属性实例的路径
- ssh - 阿帕奇气流 | 如何在使用 SSHOperator 时检查来自命令的响应?
- php - PHP仅针对经过身份验证的用户提交到数据库表
- node.js - 如何修复“致命错误:堆限制附近的无效标记压缩分配失败 - JavaScript 堆内存不足”错误
- python - 加速 Pandas:查找满足条件集的所有列
- php - 如何在sql查询中调整时间戳?
- python - 将 html/xml 中的 soap API 数据“suds.sax.text.Text”传输到 json
- javascript - node.js / nuxt 中变量前的“+”
- r - 绘制交叉表信息