有什么方法可以找出上次在 Java 中访问字符串/整数是什么时候



我在字符串中存储了会话ID,如果它空闲5分钟,我想为它保留一个计时器,我想关闭会话。会话在不同的 JAR 中创建,即第三方应用程序。无法编辑。它只是将会话 ID 返回到我的 API。

所能做的就是使用我拥有的会话 ID。我正在尝试池会议。我们正在使用 Jre 1.7

如果,我无法获取上次访问的字符串的时间戳。那么我可以将该字符串存储在 Map/List 中并获取上次访问该字符串时的时间戳吗?

请帮助我。

你可以用你自己的类来解决它 会话:

public class Session {
  private String sessionId;
  private long timestamp = System.currentTimeMillis()  1000;
  private long duration = 60 * 5;
  public Session(String sessionId) {
    this.sessionId = sessionId;
  }
  public boolean isOutOfTime() {
     if (this.timestamp + duration < System.currentTimeMillis()  1000) {
       return false;
     } else {
       return true;
     }
  }
}

在 lastTimeAccess 的 String 类中没有这样的属性/成员,

您的

猜测是正确的,您需要定义/实现您的自定义。

Map<String,Long>  

您需要仔细处理字符串对象中的不可变特征

标准 Java 库中没有任何内容可以支持这一点;您必须构建自己的"Wrapper"类;并围绕它缓存基础设施。不要误会:正确处理可能是一项高级任务

因此,我会非常小心地自己做这件事。这是一个高级主题,我的建议是:寻找已经为您执行此操作的现有框架,例如 ehcachee。

说真的:在这里重新发明轮子时要小心。

最新更新