有什么方法可以让我知道最后一次在 Java 中访问 String/Integer 是什么时候?

is there any way where I can find out when was the last time a String/Integer was accessed in Java?

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

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

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

请帮帮我。

lastTimeAccess,

的字符串 class 中没有这样的 attribute/member

你猜对了,你需要define/implement你的习惯。

Map<String,Long>  

您需要小心处理字符串对象中的不可变特性

标准 java 库中没有任何内容支持这个;您将不得不构建自己的 "Wrapper" class;并围绕它缓存基础设施。不要误会:正确 可能会成为一项 高级 任务!

因此我会非常小心自己。这是一个高级主题,我的建议是:寻找已经为您做到这一点的现有框架,例如 ehcachee.

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

你可以自己解决 class Session:

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;
     }
  }
}