0

有没有办法在不同的文件中使用相同的缓存实例?当我在 中创建缓存Main.java并这样写时:

public class Main {
   public Cache<String, String> cache = Caffeine.newBuilder()
      .expireAfterWrite(2, TimeUnit.HOURS)
      .maximumSize(250)
      .build();
  public static void main(String[] args) {

  }
}

并且想从位于单独文件中的另一个类访问它,我该怎么做?

我认为它只是以下代码(Second.java

import Main;
public class Second {
  public static void main(String[] args) {
     Main main = new Main();
     main.cache.put('key', 'value');
  }
}

但问题是它创建了 Main 类的一个新实例,因此创建了一个新的缓存。因为在Main.java执行以下代码时,它会生成null.

public class Main {
   public Cache<String, String> cache = Caffeine.newBuilder()
      .expireAfterWrite(2, TimeUnit.HOURS)
      .maximumSize(250)
      .build();
  public static void main(String[] args) {
    //A key/value is created in Second.java
    cache.getIfPresent('key'); // => 'null'
  }
}

顺便说一句,我正在制作一个事件驱动的Minecraft 插件,因此key/value应该已经通过命令创建。

4

0 回答 0