gpt4 book ai didi

java - 创建用于注释字段的常量

转载 作者:行者123 更新时间:2023-11-30 06:59:16 24 4
gpt4 key购买 nike

我正在使用 Spring 注释将缓存合并到现有的 Spring 项目中。我创建了这个类来存储缓存配置 -

public class CacheParams {

public final String name;
public final int lifeTime;
public final TimeUnit lifeTimeUnit;
public final String key;

public CacheParams(args here) {/*implementation here*/}
}

这就是我打算使用它的方式 -

class FooDaoCache extends FooDaoImpl {

private static final CacheParam USER_BY_ID_CACHE = new CacheParams(values here);

@Override
@Cacheable(cacheNames = USER_BY_ID_CACHE.name, key = USER_BY_ID_CACHE.key)
public User getUser(int userId) {
implementation here
}
}

但这不起作用,因为 USER_BY_ID_CACHE 将在编译时创建。如果我只是创建一个包含缓存名称的字符串常量,我就可以成功使用它 -

class FooDaoCache extends FooDaoImpl {
private static final String CACHE_NAME = "baz";

@Override
@Cacheable(cacheNames = CACHE_NAME)
public User getUser(int userId) {
//implementation here
}
}

有什么办法可以解决这个问题或替代设计吗?我需要 CacheParams 类,因为我还必须在代码的其他部分使用缓存名称、生命周期等执行其他操作。

最佳答案

CacheParam 需要是 enum或者name字段需要是static Final String

注释返回类型只能是原始类型、枚举、字符串、类和数组。

关于java - 创建用于注释字段的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41216094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com